
#include <bits/stdc++.h>
using namespace std;
typedef struct bnode
{
char data;
struct bnode *lchild,*rchild;
}BNode,*bitree;
void create(bitree &bt)
{
char ch;
ch=getchar();
if(ch==' ')
bt=NULL;
else
{
bt=new BNode[sizeof(BNode)];
bt->data=ch;
create(bt->lchild);
create(bt->rchild);
}
}
void level(bitree bt,int h)
{
int i,cn,len;
bitree p;
queue<bitree> q;
if(!bt)
return;
q.push(bt);
len=q.size();
cn=1;
while(!q.empty()&&cn<h)
{
while(len--)
{
p=q.front();
q.pop();
if(p->lchild)
q.push(p->lchild);
if(p->rchild)
q.push(p->rchild);
}
len=q.size();
cn++;
}
while(q.size()>1)
{
cout<<q.front()->data<<" ";
q.pop();
}
cout<<q.front()->data<<endl;
}
int main()
{
bitree bt=NULL;
int h;
create(bt);
while(cin>>h)
level(bt,h);
}