#include<iostream>
using namespace std;
int binaryTree[20], lengthOfTree;
int leftChild(int idx){ return 2*idx; }
int rightChild(int idx){ return 2*idx+1; }
int parentIndex(int idx){ return idx/2; }
void traverseTree(int idx){
if(idx >= lengthOfTree) return;
cout << binaryTree[idx] << " ";
traverseTree(leftChild(idx));
traverseTree(rightChild(idx));
}
int main(){
lengthOfTree = 15;
for(int i = 1;i <= lengthOfTree;i++){
cin >> binaryTree[i];
}
traverseTree(1);
cout << endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGJpbmFyeVRyZWVbMjBdLCBsZW5ndGhPZlRyZWU7CmludCBsZWZ0Q2hpbGQoaW50IGlkeCl7IHJldHVybiAyKmlkeDsgfQppbnQgcmlnaHRDaGlsZChpbnQgaWR4KXsgcmV0dXJuIDIqaWR4KzE7IH0KaW50IHBhcmVudEluZGV4KGludCBpZHgpeyByZXR1cm4gaWR4LzI7IH0KCnZvaWQgdHJhdmVyc2VUcmVlKGludCBpZHgpewoJaWYoaWR4ID49IGxlbmd0aE9mVHJlZSkgcmV0dXJuOwoJY291dCA8PCBiaW5hcnlUcmVlW2lkeF0gPDwgIiAiOwoJdHJhdmVyc2VUcmVlKGxlZnRDaGlsZChpZHgpKTsKCXRyYXZlcnNlVHJlZShyaWdodENoaWxkKGlkeCkpOwp9CgppbnQgbWFpbigpewoJCglsZW5ndGhPZlRyZWUgPSAxNTsKCWZvcihpbnQgaSA9IDE7aSA8PSBsZW5ndGhPZlRyZWU7aSsrKXsKCQljaW4gPj4gYmluYXJ5VHJlZVtpXTsgIAoJfQoJdHJhdmVyc2VUcmVlKDEpOwoJY291dCA8PCBlbmRsOwoKcmV0dXJuIDA7Cn0=