Cod sursa(job #359648)
#include<stdio.h>
int n,k,i,x[25],next_combination();
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d%d",&n,&k);
}
void solve()
{
for(i=1;i<=k+1;i++)x[i]=i;
for(;;)
{
for(i=1;i<k;i++)printf("%d ",x[i]);printf("%d\n",x[k]);
if(!next_combination())return;
}
}
int next_combination()
{
int j;
for(j=k;j>=1;j--)if(x[j]-n+k-j)break;
x[j]++;
for(i=j+1;i<=n;i++)x[i]=x[i-1]+1;
return j;
}