#include<bits/stdc++.h>
using namespace std;
int d[1000];
int n,k,maxs;
int tag[100],p[100];
void dfs(int t,int s){
if(t==k) return ;
int sum=1;
p[t]=s;
memset(d,10000,sizeof(d));
d[0]=0;
for(int i=1;;i++){
for(int j=0;j<=t&&i>=p[j];j++){
d[i]=min(d[i],d[i-p[j]]+1);
}
if(d[i]>n) break;
sum=max(sum,i);
}
if(sum>maxs){
for(int i=0;i<=t;i++)
tag[i]=p[i];
maxs=sum;
}
for(int i=s+1;i<=sum+1;i++)
dfs(t+1,i);
}
int main(){
cin>>n>>k;
dfs(0,1);
for(int i=0;i<k;i++){
cout<<tag[i]<<" ";
}
cout<<endl;
cout<<"MAX="<<maxs<<endl;
return 0;
}