#include #include #include #include using namespace std; int table[50][50]; bool solve(int i, int j) { if(!(table[i][j]+1)) return false; if(!(table[i][j]-1)) return true; table[i][j]=-1; bool res = false; const int dxy[] = {1,0,-1,0,1}; for(int k = 0; k < 4; k++) { res |= solve(i+dxy[k],j+dxy[k+1]); } return res; } int main() { string n; cin >> n; if(n.size() >= 3 || atoi(n.c_str()) > 28) { cout << 8 << endl; return 0; } int N = atoi(n.c_str()); int w = 1; while(1) { for(int i = 0; i < 50; i++) for(int j = 0; j < 50; j++) table[i][j] = -1; for(int i = 0; i < N; i++) { table[i/w + 1][i%w + 1] = 0; bool p = true; for(int j = 2; j < i+1; j++) { p &= (i+1)%j != 0; } if(p&&i) table[i/w+1][i%w+1] = -1; } table[(N-1)/w+1][(N-1)%w+1] = 1; if(solve(1,1)) break; w++; } cout << w << endl; }