#include <bits/stdc++.h>
using namespace std;
#define g(n) scanf("%d",&n)
// #define g(n) inp(n)
#define gl(n) scanf("%lld", &n)
#define f(i,n) for(int i=0; i<n; i++)
#define pb push_back
#define mp make_pair
#define fab(i,a,b) for(int i=a; i<=b; i++)
#define test(t) while(t--)
#define getcx getchar//_unlocked
typedef long long int ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector< vi > vvi;
void print(vector<int> ar){
for(int i=0; i<ar.size(); i++)
cout << ar[i] << " ";
cout << endl;
}
void ncr(int* ar, int n, int r, vector<int>& selected)
{
if(r>n || r<0)
return;
if(r==0)
print(selected);
else
{
//select ar[0]
selected.push_back(ar[0]);
ncr(ar+1, n-1, r-1, selected);
selected.pop_back();
//do not select ar[0]
ncr(ar+1, n-1, r, selected);
}
}
int main()
{
int ar[] = {1,2,3,4,5,6};
vi v(0);
ncr(ar, 6, 3, v);
return 0;
}
CgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZyhuKSBzY2FuZigiJWQiLCZuKQovLyAjZGVmaW5lIGcobikgaW5wKG4pCiNkZWZpbmUgZ2wobikgc2NhbmYoIiVsbGQiLCAmbikKI2RlZmluZSBmKGksbikgZm9yKGludCBpPTA7IGk8bjsgaSsrKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGZhYihpLGEsYikgZm9yKGludCBpPWE7IGk8PWI7IGkrKykKI2RlZmluZSB0ZXN0KHQpIHdoaWxlKHQtLSkKI2RlZmluZSBnZXRjeCBnZXRjaGFyLy9fdW5sb2NrZWQKCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8IHZpID4gdnZpOwoKdm9pZCBwcmludCh2ZWN0b3I8aW50PiBhcil7Cglmb3IoaW50IGk9MDsgaTxhci5zaXplKCk7IGkrKykKCQljb3V0IDw8IGFyW2ldIDw8ICIgIjsKCWNvdXQgPDwgZW5kbDsKfQoKdm9pZCBuY3IoaW50KiBhciwgaW50IG4sIGludCByLCB2ZWN0b3I8aW50PiYgc2VsZWN0ZWQpCnsKCWlmKHI+biB8fCByPDApCgkJcmV0dXJuOwoJaWYocj09MCkKCQlwcmludChzZWxlY3RlZCk7CgllbHNlCgl7CgkJLy9zZWxlY3QgYXJbMF0KCQlzZWxlY3RlZC5wdXNoX2JhY2soYXJbMF0pOwoJCW5jcihhcisxLCBuLTEsIHItMSwgc2VsZWN0ZWQpOwoJCXNlbGVjdGVkLnBvcF9iYWNrKCk7CgoJCS8vZG8gbm90IHNlbGVjdCBhclswXQoJCW5jcihhcisxLCBuLTEsIHIsIHNlbGVjdGVkKTsKCX0KCn0KCmludCBtYWluKCkKewoJaW50IGFyW10gPSB7MSwyLDMsNCw1LDZ9OwoJdmkgdigwKTsKCW5jcihhciwgNiwgMywgdik7CglyZXR1cm4gMDsKfQ==