#include <bits/stdc++.h>
using namespace std;
bool isSquare(long long x) {
long long r = (long long)sqrtl((long double)x);
return r * r == x;
}
int main() {
long long n;
cin >> n;
// 1) 本身是平方
if (isSquare(n)) {
cout << 1 << '\n';
return 0;
}
// 2) 两个平方之和
for (long long a = 1; a * a <= n; ++a) {
if (isSquare(n - a * a)) {
cout << 2 << '\n';
return 0;
}
}
// 3) 判定是否必须为 4
long long m = n;
while (m % 4 == 0) m /= 4;
if (m % 8 == 7) {
cout << 4 << '\n';
return 0;
}
// 4) 否则就是 3
cout << 3 << '\n';
return 0;
}