import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
boolean[] isPrime = new boolean[n + 1];
List<Integer> primes = new LinkedList<>();
Arrays.fill(isPrime, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i <= n; i++) {
if (isPrime[i]) primes.add(i);
for (int x : primes) {
if (i * x > n) break;
isPrime[i * x] = false;
if (i % x == 0) break;
}
}
long[] dp = new long[n + 1];
dp[0] = 1;
for (int x : primes) for (int i = x; i <= n; i++) dp[i] += dp[i - x];
System.out.println(dp[n]);
}
}