#yuki458

def isPrime(n):
 if n==2 or n==3: return True
 if n%2==0 or n<2: return False
 for i in range(3,int(n**0.5)+1,2):
  if n%i==0:
   return False    
 return True

n=int(raw_input())

dp=[-3 for i in xrange(n+1)]
dp[0]=0
for i in xrange(2,n+1):
 if isPrime(i)==True:
  for j in xrange(n-i,-1,-1):
   dp[i+j]=max(dp[i+j],dp[j]+1)
#print dp
if dp[n]>0:
 print dp[n]
else:
 print -1