#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>

int sum_digits(int number) {
    int ret = 0;
    do {
        ret += number % 10;
        number /= 10;
    } while (number > 0);
    return ret;
}

const bool debug = true;

int main() {
    
    int sum, digit;
    std::cin >> sum >> digit;
    
    const int NMAX = (int)1e5;
    std::vector<bool> is_prime(1+NMAX,1);
    is_prime[0] = is_prime[1] = false;
    for (int i = 2; i * i <= NMAX; ++i) {
        if (!is_prime[i]) continue;
        for (int j = i * i; j <= NMAX; j += i) {
            is_prime[j] = false;
        }
    }
    
    if (debug) {
        std::vector<std::vector<int>> cnt(50,std::vector<int>(10,0));
        for (int i = 10000; i <= NMAX; ++i) {
            if (is_prime[i]) cnt[sum_digits(i)][i / 10000]++;
        }
        for (int i = 0; i < 50; ++i) {
            int s = std::accumulate(cnt[i].begin(), cnt[i].end(), 0);
            if (s == 0) continue;
            printf("cnt[%02d]=%3d:", i, s);
            for (int d = 0; d < 10; ++d) {
                printf(" [%d]=%3d", d, cnt[i][d]);
            }
            printf("\n");
        }
    }
    
    std::vector<int> primes;
    for (int i = 10000; i <= NMAX; ++i) {
        if (is_prime[i] && sum_digits(i) == sum) {
            primes.push_back(i);
        }
    }
    
    
    return 0;
}