#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;
}