#include <iostream>
#include <unordered_set>
using namespace std;
int main(){
unordered_set<int> s; int cb=34;
for (int i=1;i<cb-1;i++)for(int j=i+1;j<cb+1;j++){
int sum=i*i*i+j*j*j;
if(s.find(sum)!=s.end()){if(sum<=cb*cb*cb)cout<<sum<<endl;}
else s.insert(sum);}}
int main() {
std::unordered_map nums;
std::set sum_of_2_cubes;
for (int i = 1; i < 40; ++i) {
long long i_cubed = (long long)i * i * i;
for (int j = i; j < 40; ++j) {
long long cube_sum = i_cubed + (long long)j * j * j;
auto [it, inserted] = nums.try_emplace(cube_sum, i, j);
if (!inserted && i != it->second.first && j != it->second.second) {
sum_of_2_cubes.insert(cube_sum);
}
}
}
for (auto it = sum_of_2_cubes.begin(); it != sum_of_2_cubes.end() && std::distance(sum_of_2_cubes.begin(), it) < 5; ++it) {
std::cout