#include <bits/stdc++.h>
using namespace std;
long long n,k;
vector<long long> a;
vector<long long> f(92);
vector<bool> isFibo(1000,false);
void sinhfibo(){
f[0] = 0;isFibo[0] = true;
f[1] = 1;isFibo[1] = true;
for(long long i = 2; i < 92;i++){
f[i] = f[i - 1] + f[i - 2];
if(f[i] < 1000 ) isFibo[f[i]] = true;
else break;
}
}
void sinh(long long start){
if(a.size() == k){
long long tong = 0;
for(long long x : a) tong += x;
if(isFibo[tong]){
for(long long x : a) cout << x << " ";
cout << "\n";
}
return;
}
for(long long i = start;i < n;i++){
a.push_back(i + 1);
sinh(i + 1);
a.pop_back();
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> k;
sinhfibo();
sinh(0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmxvbmcgbG9uZyBuLGs7CnZlY3Rvcjxsb25nIGxvbmc+IGE7CnZlY3Rvcjxsb25nIGxvbmc+IGYoOTIpOwp2ZWN0b3I8Ym9vbD4gaXNGaWJvKDEwMDAsZmFsc2UpOwp2b2lkIHNpbmhmaWJvKCl7CiAgICBmWzBdID0gMDtpc0ZpYm9bMF0gPSB0cnVlOwogICAgZlsxXSA9IDE7aXNGaWJvWzFdID0gdHJ1ZTsKICAgIGZvcihsb25nIGxvbmcgaSA9IDI7IGkgPCA5MjtpKyspewogICAgICAgIGZbaV0gPSBmW2kgLSAxXSArIGZbaSAtIDJdOwogICAgICAgIGlmKGZbaV0gPCAxMDAwICkgaXNGaWJvW2ZbaV1dID0gdHJ1ZTsKICAgICAgICBlbHNlIGJyZWFrOwogICAgfQp9Cgp2b2lkIHNpbmgobG9uZyBsb25nIHN0YXJ0KXsKICAgIGlmKGEuc2l6ZSgpID09IGspewogICAgICAgIGxvbmcgbG9uZyB0b25nID0gMDsKICAgICAgICBmb3IobG9uZyBsb25nIHggOiBhKSB0b25nICs9IHg7CiAgICAgICAgaWYoaXNGaWJvW3RvbmddKXsKICAgICAgICAgICAgZm9yKGxvbmcgbG9uZyB4IDogYSkgY291dCA8PCB4IDw8ICIgIjsKICAgICAgICAgICAgY291dCA8PCAiXG4iOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CiAgICBmb3IobG9uZyBsb25nIGkgPSBzdGFydDtpIDwgbjtpKyspewogICAgICAgIGEucHVzaF9iYWNrKGkgKyAxKTsKICAgICAgICBzaW5oKGkgKyAxKTsKICAgICAgICBhLnBvcF9iYWNrKCk7CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBzaW5oZmlibygpOwogICAgc2luaCgwKTsKfQ==