#include #include #include #include #include using namespace std; typedef unsigned long long LL; const int maxn=55; int n,in[maxn]; string s[maxn]; LL f[maxn]; vector G[maxn]; void dfs(int u) { f[u]=1; for(int i=0;i>n; for(int i=1;i<=n;i++) cin>>s[i]; sort(s+1,s+n+1,cmp); // for(int i=1;i<=n;i++) cout<=1;i--) { for(int j=i-1;j>=1;j--) if(s[i].substr(0,s[j].size())==s[j]) { G[j].push_back(i); in[i]++; // printf("add %d %d\n",j,i); break; } } for(int i=1;i<=n;i++) if(in[i]==0) G[0].push_back(i); dfs(0); cout<