// Author: Damian Straszak import java.io.*; import java.util.*; public class E { BufferedReader br; PrintWriter out; StringTokenizer st; boolean eof; public static final int INF=(1<<29); int[] ispower; int[] possible; int get_next_left(int old,int x,int oldsum) { int a=old,b=oldsum-a; if (a%x==0) a+=x; else return -1; if (ispower[a]!=-1) { if (2*a>b) { b+=a; a=0; } } return a; } int get_next_right(int old,int x,int oldsum) { int a=old,b=oldsum-a; if (b%x==0) b+=x; else return -1; if (ispower[b]!=-1) { if (2*b>a) { a+=b; b=0; } } return a; } void solve() throws IOException { ispower=new int[1<<18]; possible=new int[1<<18]; for(int i=0;i<(1<<18);i++) ispower[i]=-1; for(int i=0;i<18;i++) ispower[1<0) { int n=nextInt(); int sum=0; int[] num=new int[n]; for(int i=0;i pos=new ArrayList(); for(int j=0;j=0 && possible[yn[k]]==0) { possible[yn[k]]=1; pos.add(yn[k]); } } } len[i]=pos.size(); v[i]=new int[len[i]]; for(int j=0;j=0;i--) { int akt=v[i+1][b]; sum-=num[i]; for(int j=0;j=0;i--) out.print(s.charAt(i)); out.println(""); } } E() throws IOException { br=new BufferedReader(new InputStreamReader(System.in)); out=new PrintWriter(System.out); solve(); out.close(); } public static void main(String[] args) throws IOException { new E(); } String nextToken() { while (st==null || !st.hasMoreTokens()) { try { st=new StringTokenizer(br.readLine()); } catch (Exception e) { eof=true; return null; } } return st.nextToken(); } String nextString() { try { return br.readLine(); } catch (IOException e) { eof=true; return null; } } int nextInt() throws IOException { return Integer.parseInt(nextToken()); } long nextLong() throws IOException { return Long.parseLong(nextToken()); } double nextDouble() throws IOException { return Double.parseDouble(nextToken()); } }