int prod[4000001];
int valid[3001];
int good[1001][1001];
int r = 3;
int p = 100;
int main()
{
int i, j, k, t;
for (i = r; i <= p; i++) {
for (j = i; j <= p; j++) {
prod[i * j]++;
}
}
for (i = r * 2; i <= p * 2; i++) {
valid[i] = 1;
for (j = r; j <= i / 2; j++) {
if (j > p) continue;
if (prod[j * (i - j)] < 2) valid[i] = 0;
}
}
for (i = r; i <= p; i++) {
for (j = i; j <= p; j++) {
if (!valid[i + j]) continue;
k = i * j;
good[i][j] = 1;
for (t = r; t * t <= k; t++) if (k % t == 0) {
if (t != i && t + k / t <= p * 2 && valid[t + k / t]) good[i][j] = 0;
}
}
}
for (i = r; i <= p; i++) {
for (j = i; j <= p; j++) {
if (!good[i][j]) continue;
for (k = r; k <= i + j; k++) {
t = i + j - k;
if (k > t || t > p) continue;
if (i != k && good[k][t]) break;
}
if (k > i + j) printf("%d %dn", i, j);
}
}
return 0;
}