func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100010;   int gcd(int x, int y) { return !y ? x : gcd(y, x % y); }   int rev(int num) {     int dig[10], tot = 0, s = 0;     for (; num; num /= 10) dig[tot++] = num % 10;     for (int i = 0; i < tot; i++) s = s * 10 + dig[i];     return s;   }   pair<int, int> p[maxn], r[maxn];   void init() {     for (int i = 1; i <= 100000; i++) {       int re = rev(i);       int g = gcd(re, i);       p[i] = make_pair(i / g, re / g);       r[i] = make_pair(re / g, i / g);     }   }   int main() {     init();     map<pair<int, int>, int> mx, my;     int nx, ny, w;     cin >> nx >> ny >> w;     for (int i = 1; i <= ny; i++) ++my[p[i]];     int x = -1, y = -1;     for (int i = 1, j = ny, k = 0; i <= nx; i++) {       ++mx[p[i]];       k += my[r[i]];       while (j > 0 && k >= w) {         if (x == -1 || (long long)x * y > (long long)i * j) {           x = i;           y = j;         }         my[p[j]]--;         k -= mx[r[j]];         j--;         if (k < w) {           j++;           my[p[j]]++;           k += mx[r[j]];           break;         }       }     }     if (x == -1) {       puts( -1 );     } else {       printf( %d %d n , x, y);     }     return 0;   }   