#include<iostream>
#include<vector>
using namespace std;
bool f(int n)
{
long long m = 1LL * n * n;
while (n)
{
if (n % 10 != m % 10) return false;
n /= 10;
m /= 10;
}
return true;
}
int main()
{
vector<int> L;
for (int i = 0; i < 100000; i++)
{
long long n = i, m = 1LL * i * i;
bool chk = true;
for (int j = 0; j < 5; j++)
{
if (n % 10 != m % 10) chk = false;
n /= 10;
m /= 10;
}
if (chk) L.push_back(i);
}
long long N, ans = 0;
cin >> N;
for (int i = 0; i < 100000 && i < N; i++)
if (f(i)) ans = i;
if (N >= 100000)
{
for (long long i = 100000; i <= N; i += 100000)
{
for (int j = 0; j < L.size(); j++)
{
long long val = i + L[j];
if (val >= N) break;
if (f(val)) ans = val;
}
}
}
cout << ans;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgZihpbnQgbikKewoJbG9uZyBsb25nIG0gPSAxTEwgKiBuICogbjsKCgl3aGlsZSAobikKCXsKCQlpZiAobiAlIDEwICE9IG0gJSAxMCkgcmV0dXJuIGZhbHNlOwoJCW4gLz0gMTA7CgkJbSAvPSAxMDsKCX0KCglyZXR1cm4gdHJ1ZTsKfQoKaW50IG1haW4oKQp7Cgl2ZWN0b3I8aW50PiBMOwoJZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwMDA7IGkrKykKCXsKCQlsb25nIGxvbmcgbiA9IGksIG0gPSAxTEwgKiBpICogaTsKCQlib29sIGNoayA9IHRydWU7CgkJZm9yIChpbnQgaiA9IDA7IGogPCA1OyBqKyspCgkJewoJCQlpZiAobiAlIDEwICE9IG0gJSAxMCkgY2hrID0gZmFsc2U7CgkJCW4gLz0gMTA7CgkJCW0gLz0gMTA7CgkJfQoKCQlpZiAoY2hrKSBMLnB1c2hfYmFjayhpKTsKCX0KCglsb25nIGxvbmcgTiwgYW5zID0gMDsKCWNpbiA+PiBOOwoJZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwMDAgJiYgaSA8IE47IGkrKykKCQlpZiAoZihpKSkgYW5zID0gaTsKCglpZiAoTiA+PSAxMDAwMDApCgl7CgkJZm9yIChsb25nIGxvbmcgaSA9IDEwMDAwMDsgaSA8PSBOOyBpICs9IDEwMDAwMCkKCQl7CgkJCWZvciAoaW50IGogPSAwOyBqIDwgTC5zaXplKCk7IGorKykKCQkJewoJCQkJbG9uZyBsb25nIHZhbCA9IGkgKyBMW2pdOwoJCQkJaWYgKHZhbCA+PSBOKSBicmVhazsKCgkJCQlpZiAoZih2YWwpKSBhbnMgPSB2YWw7CgkJCX0KCQl9Cgl9Cgljb3V0IDw8IGFuczsKCXJldHVybiAwOwp9