#include <iostream>
#include <algorithm>
using namespace std;
const int n = 10000;
const int m = 5;
const int N = n * (n - 1) / 2;
long long d[N];
int p[N], q[N], s[n];
void MergeColumns(int l, int r, bool ptoq)
{
int c = (l + r) / 2;
if (c - l > 1) MergeColumns(l, c, !ptoq);
if (r - c > 1) MergeColumns(c, r, !ptoq);
int L = s[l], C = s[c], R = s[r];
int *S = ptoq ? p : q, *D = ptoq ? q : p;
merge(S + L, S + C, S + C, S + R, D + L, [](int x, int y) {return d[x] < d[y];});
}
int main(void)
{
int a, b, i, j;
for (s[i = 0] = 0, b = 1; b <= n - 1; b++) {
for (a = b + 1; a <= n; a++, i++) {
d[i] = (long long)a * a * a - (long long)b * b * b;
p[i] = q[i] = i;
}
s[b] = i;
}
MergeColumns(0, n - 1, false);
for (i = 0; i < N - m + 1; i++) {
if (d[p[i]] != d[p[i + m - 1]]) continue;
cout << d[p[i]] << ": ";
for (j = i + m; d[p[j]] == d[p[i]]; j++);
for_each(p + i, p + j, [&](int &x) {
b = upper_bound(s + 1, s + n, x) - s;
a = x - s[b - 1] + b + 1;
cout << (&x > p + i ? ", (" : "(") << a << ", " << b << ")";
});
cout << endl;
i = j - 1;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBuID0gMTAwMDA7CmNvbnN0IGludCBtID0gNTsKY29uc3QgaW50IE4gPSBuICogKG4gLSAxKSAvIDI7Cgpsb25nIGxvbmcgZFtOXTsKaW50IHBbTl0sIHFbTl0sIHNbbl07Cgp2b2lkIE1lcmdlQ29sdW1ucyhpbnQgbCwgaW50IHIsIGJvb2wgcHRvcSkKewogICAgaW50IGMgPSAobCArIHIpIC8gMjsKICAgIGlmIChjIC0gbCA+IDEpIE1lcmdlQ29sdW1ucyhsLCBjLCAhcHRvcSk7CiAgICBpZiAociAtIGMgPiAxKSBNZXJnZUNvbHVtbnMoYywgciwgIXB0b3EpOwoKICAgIGludCBMID0gc1tsXSwgQyA9IHNbY10sIFIgPSBzW3JdOwogICAgaW50ICpTID0gcHRvcSA/IHAgOiBxLCAqRCA9IHB0b3EgPyBxIDogcDsKICAgIG1lcmdlKFMgKyBMLCBTICsgQywgUyArIEMsIFMgKyBSLCBEICsgTCwgW10oaW50IHgsIGludCB5KSB7cmV0dXJuIGRbeF0gPCBkW3ldO30pOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBpbnQgYSwgYiwgaSwgajsKCiAgICBmb3IgKHNbaSA9IDBdID0gMCwgYiA9IDE7IGIgPD0gbiAtIDE7IGIrKykgewogICAgICAgIGZvciAoYSA9IGIgKyAxOyBhIDw9IG47IGErKywgaSsrKSB7CiAgICAgICAgICAgIGRbaV0gPSAobG9uZyBsb25nKWEgKiBhICogYSAtIChsb25nIGxvbmcpYiAqIGIgKiBiOwogICAgICAgICAgICBwW2ldID0gcVtpXSA9IGk7CiAgICAgICAgfQogICAgICAgIHNbYl0gPSBpOwogICAgfQogICAgTWVyZ2VDb2x1bW5zKDAsIG4gLSAxLCBmYWxzZSk7CgogICAgZm9yIChpID0gMDsgaSA8IE4gLSBtICsgMTsgaSsrKSB7CiAgICAgICAgaWYgKGRbcFtpXV0gIT0gZFtwW2kgKyBtIC0gMV1dKSBjb250aW51ZTsKCiAgICAgICAgY291dCA8PCBkW3BbaV1dIDw8ICI6ICI7CiAgICAgICAgZm9yIChqID0gaSArIG07IGRbcFtqXV0gPT0gZFtwW2ldXTsgaisrKTsKICAgICAgICBmb3JfZWFjaChwICsgaSwgcCArIGosIFsmXShpbnQgJngpIHsKICAgICAgICAgICAgYiA9IHVwcGVyX2JvdW5kKHMgKyAxLCBzICsgbiwgeCkgLSBzOwogICAgICAgICAgICBhID0geCAtIHNbYiAtIDFdICsgYiArIDE7CiAgICAgICAgICAgIGNvdXQgPDwgKCZ4ID4gcCArIGkgPyAiLCAoIiA6ICIoIikgPDwgYSA8PCAiLCAiIDw8IGIgPDwgIikiOwogICAgICAgIH0pOwogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICBpID0gaiAtIDE7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==
1412774811: (1134, 357), (1155, 504), (1246, 805), (2115, 2004), (4746, 4725)
11302198488: (2268, 714), (2310, 1008), (2492, 1610), (4230, 4008), (9492, 9450)