#include<bits/stdc++.h>
using namespace std;
int n , k;
int X[100];
int nt[501];
vector<vector<int>> v;
void checknt(int n, int nt[]) {
for (int i = 0; i <= n; i++) {
nt[i] = 1;
}
nt[0] = 0;
nt[1] = 0;
for (int i = 2; i <= sqrt(n); i++) {
if (nt[i]) {
for (int j = i * i; j <= n; j += i) {
nt[j] = 0;
}
}
}
}
void khoitao(){
cin >> n >> k ;
}
void Try(int i,int bd , int sum){
for(int j = bd ; j <= n ; j++){
if(nt[j]){
X[i] = j;
if(i == k && sum + j == n){
vector<int> tmp(X+1,X+i+1);
v.push_back(tmp);
}
else if(i < k && sum + j < n ){
Try(i+1,j+1,sum+j);
}
}
}
}
int main(){
khoitao();
checknt(501,nt);
Try(1,1,0);
if(v.empty()){
cout << "NOT FOUND";
return 0;
}
else{
sort(v.begin() , v.end());
for(vector<int> p : v){
for(int i = 0 ; i < p.size() ; i++){
cout << p[i];
if(i < p.size() - 1){
cout << " + ";
}
}
cout << endl;
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG4gLCBrOyAKaW50IFhbMTAwXTsKaW50IG50WzUwMV07CnZlY3Rvcjx2ZWN0b3I8aW50Pj4gdjsKdm9pZCBjaGVja250KGludCBuLCBpbnQgbnRbXSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgbnRbaV0gPSAxOwogICAgfQogICAgbnRbMF0gPSAwOwogICAgbnRbMV0gPSAwOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gc3FydChuKTsgaSsrKSB7CiAgICAgICAgaWYgKG50W2ldKSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogaTsgaiA8PSBuOyBqICs9IGkpIHsKICAgICAgICAgICAgICAgIG50W2pdID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQp2b2lkIGtob2l0YW8oKXsKICAgIGNpbiA+PiBuID4+IGsgOyAKfQp2b2lkIFRyeShpbnQgaSxpbnQgYmQgLCBpbnQgc3VtKXsKICAgIGZvcihpbnQgaiA9IGJkIDsgaiA8PSBuIDsgaisrKXsKICAgICAgICBpZihudFtqXSl7CiAgICAgICAgICAgIFhbaV0gPSBqOwogICAgICAgICAgICBpZihpID09IGsgJiYgc3VtICsgaiA9PSBuKXsKICAgICAgICAgICAgICAgIHZlY3RvcjxpbnQ+IHRtcChYKzEsWCtpKzEpOwogICAgICAgICAgICAgICAgdi5wdXNoX2JhY2sodG1wKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKGkgPCBrICYmIHN1bSArIGogPCBuICl7CiAgICAgICAgICAgICAgICBUcnkoaSsxLGorMSxzdW0raik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGtob2l0YW8oKTsKICAgIGNoZWNrbnQoNTAxLG50KTsKICAgIFRyeSgxLDEsMCk7CiAgICBpZih2LmVtcHR5KCkpewogICAgICAgIGNvdXQgPDwgIk5PVCBGT1VORCI7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBlbHNlewogICAgCXNvcnQodi5iZWdpbigpICwgdi5lbmQoKSk7CiAgICAgICAgZm9yKHZlY3RvcjxpbnQ+IHAgOiB2KXsKICAgICAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCBwLnNpemUoKSA7IGkrKyl7CiAgICAgICAgICAgICAgICBjb3V0IDw8IHBbaV07CiAgICAgICAgICAgICAgICBpZihpIDwgcC5zaXplKCkgLSAxKXsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICIgKyAiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICB9CiAgICB9Cn0=