#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 2e5 + 5, mod = 1e9 + 7;
ll gcd(ll a, ll b) {
return b == 0 ? a : gcd(b, a % b);
}
ll lcm(ll a, ll b) {
return a / gcd(a, b) * b;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
for (int a = 1; a <= 9; a++) {
for (int b = 1; b <= 9; b++) {
// x + y = 10a + b
// x * y = a + 10b
// x * (10a + b - x) = a + 10b
// x² - (10a + b)x + (a + 10b) = 0
// x = [(10a + b) +- sqrt( (10a + b)² - 4(a + 10b) )] / 2a
int d = (10*a + b)*(10*a + b) - 4*(a + 10*b);
if (d < 0) continue;
int sqrt_d = sqrt(d);
if (sqrt_d * sqrt_d != d) continue;
int x = (10*a + b) + sqrt_d;
if (x % (2)) continue;
x /= 2;
int y = 10*a + b - x;
cout << x << " " << y << endl;
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwpjb25zdCBpbnQgTiA9IDJlNSArIDUsIG1vZCA9IDFlOSArIDc7CgpsbCBnY2QobGwgYSwgbGwgYikgewogICAgcmV0dXJuIGIgPT0gMCA/IGEgOiBnY2QoYiwgYSAlIGIpOwp9CmxsIGxjbShsbCBhLCBsbCBiKSB7CiAgICByZXR1cm4gYSAvIGdjZChhLCBiKSAqIGI7Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgCiAgICBmb3IgKGludCBhID0gMTsgYSA8PSA5OyBhKyspIHsKICAgICAgICBmb3IgKGludCBiID0gMTsgYiA8PSA5OyBiKyspIHsKICAgICAgICAgICAgLy8geCArIHkgPSAxMGEgKyBiCiAgICAgICAgICAgIC8vIHggKiB5ID0gYSArIDEwYgogICAgICAgICAgICAvLyB4ICogKDEwYSArIGIgLSB4KSA9IGEgKyAxMGIKICAgICAgICAgICAgLy8geMKyIC0gKDEwYSArIGIpeCArIChhICsgMTBiKSA9IDAKICAgICAgICAgICAgLy8geCA9IFsoMTBhICsgYikgKy0gc3FydCggKDEwYSArIGIpwrIgLSA0KGEgKyAxMGIpICldIC8gMmEKICAgICAgICAgICAgCiAgICAgICAgICAgIGludCBkID0gKDEwKmEgKyBiKSooMTAqYSArIGIpIC0gNCooYSArIDEwKmIpOwogICAgICAgICAgICBpZiAoZCA8IDApIGNvbnRpbnVlOwogICAgICAgICAgICAKICAgICAgICAgICAgaW50IHNxcnRfZCA9IHNxcnQoZCk7CiAgICAgICAgICAgIGlmIChzcXJ0X2QgKiBzcXJ0X2QgIT0gZCkgY29udGludWU7CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgeCA9ICgxMCphICsgYikgKyBzcXJ0X2Q7CiAgICAgICAgICAgIGlmICh4ICUgKDIpKSBjb250aW51ZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHggLz0gMjsKICAgICAgICAgICAgaW50IHkgPSAxMCphICsgYiAtIHg7CiAgICAgICAgICAgIGNvdXQgPDwgeCA8PCAiICIgPDwgeSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=