Cod sursa(job #926126)
#include <stdio.h>
using namespace std;
#define Nmax 20
int n, k, p, st[Nmax];
void init(){
st[k] = st[k-1];
}
int am_succesor(){
if(st[k] < n){
++st[k];
return 1;
}
return 0;
}
int e_valid(){
return 1;
}
int solutie(){
return k == p;
}
void afis(){
for(int i = 1; i <= p; ++i)
printf("%i ", st[i]);
printf("\n");
}
void back(){
int as; k = 1;
while(k){
while((as = am_succesor())&&(!e_valid()));
if(as){
if(solutie()) afis();
else{
++k;
init();
}
}
else --k;
}
}
int main(){
freopen("combinari.in", "r", stdin);
freopen("combinari.out", "w", stdout);
scanf("%i %i", &n, &p);
fclose(stdin);
back();
fclose(stdout);
return 0;
}