//打出n位的二进制数:n=2有:00 01 10 11
#include <iostream>
using namespace std;
int n,a[10];
void output()
{
int i;
for (i=1;i<=n; i++)
cout<<a[i]<<" ";
cout<<endl;
}
void f(int cur) //子集树
{ int i;
if (cur>n) output();
else
for(i=0;i<=1;i++)
{ a[cur]=i; f(cur+1);}
}
int main()
{
cin>>n;
f(1);
system("pause");
return 0;
}