#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n;
vector<ll> v[20];
ll c[20],p[20];
void dfs(ll x,ll o,ll k)
{
c[x]=k;
p[x]=o;
for(auto t:v[x])
{
if(t!=o)
{
dfs(t,x,1-k);
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(ll i=0;i<n;i++)
{
ll x,y;
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(0,-1,0);
ll m=(1LL<<(n-1));
cout<<m<<endl;
for(ll i=0;i<m;i++)
{
ll g=i^(i>>1);
vector<ll>r(n+1);
for(ll j=0;j<=n;j++)
{
ll s=0;
ll b=g;
if(c[j]==1)
{
b^=(m-1);
}
s=(b<<1);
ll k=0;
for(ll l=0;l<n-1;l++)
{
if((b>>l)&1)
{
k^=1;
}
}
s|=k;
r[j]=s;
}
for(ll j=0;j<=n;j++)
{
cout<<r[j]<<(j==n?"":" ");
}
cout<<endl;
}
return 0;
}