#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