#include <bits/stdc++.h>
using namespace std;
const int SIZE=10000000;
bool is_prime[SIZE];
int main() {
    memset(is_prime,-1,sizeof(is_prime));
    for(int i=2;i*i<SIZE;i++) {
        if(!is_prime[i]) continue;
        for(int j=i*2;j<SIZE;j+=i) is_prime[j]=0;
    }
    vector<int> prime;
    for(int i=2;i<SIZE;i++) if(is_prime[i]) prime.push_back(i); 
    int N,P;
    while(scanf("%d %d",&N,&P),N!=-1) {
        int pos=upper_bound(prime.begin(),prime.end(),N)-prime.begin();
        vector<int> L;
        for(int i=0;i<P;i++) {
            for(int j=i;j<P;j++) {
                L.push_back(prime[pos+i]+prime[pos+j]);
            }
        }
        sort(L.begin(),L.end());
        printf("%d\n",L[P-1]);
    }
}