import java.util.*;
public class Main {
static class Node {
Node left;
Node right;
int data;
Node(int data) {
this.data = data;
}
}
static Node buildTree(int[] vals) {
if (vals.length == 0 || vals[0] == -1) return null;
Node root = new Node(vals[0]);
Queue<Node> q = new LinkedList<>();
q.offer(root);
int i = 1;
while (!q.isEmpty() && i < vals.length) {
Node curr = q.poll();
if (i < vals.length && vals[i] != -1) {
curr.left = new Node(vals[i]);
q.offer(curr.left);
}
i++;
if (i < vals.length && vals[i] != -1) {
curr.right = new Node(vals[i]);
q.offer(curr.right);
}
i++;
}
return root;
}
static List<Integer> res = new ArrayList<>();
static void seq(Node root) {
if (root == null) return;
seq(root.left);
res.add(root.data);
seq(root.right);
}
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
int[] vals = new int[n];
for (int i = 0; i < n; i++) {
vals[i] = sc.nextInt();
}
Node root = buildTree(vals);
seq(root);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < res.size(); i++) {
sb.append(res.get(i));
if (i != res.size() - 1) sb.append(" ");
}
System.
out.
println(sb.
toString()); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgc3RhdGljIGNsYXNzIE5vZGUgewogICAgICAgIE5vZGUgbGVmdDsKICAgICAgICBOb2RlIHJpZ2h0OwogICAgICAgIGludCBkYXRhOwogICAgICAgIE5vZGUoaW50IGRhdGEpIHsKICAgICAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICAgICB9CiAgICB9CgogICAgc3RhdGljIE5vZGUgYnVpbGRUcmVlKGludFtdIHZhbHMpIHsKICAgICAgICBpZiAodmFscy5sZW5ndGggPT0gMCB8fCB2YWxzWzBdID09IC0xKSByZXR1cm4gbnVsbDsKICAgICAgICBOb2RlIHJvb3QgPSBuZXcgTm9kZSh2YWxzWzBdKTsKICAgICAgICBRdWV1ZTxOb2RlPiBxID0gbmV3IExpbmtlZExpc3Q8PigpOwogICAgICAgIHEub2ZmZXIocm9vdCk7CiAgICAgICAgaW50IGkgPSAxOwogICAgICAgIHdoaWxlICghcS5pc0VtcHR5KCkgJiYgaSA8IHZhbHMubGVuZ3RoKSB7CiAgICAgICAgICAgIE5vZGUgY3VyciA9IHEucG9sbCgpOwogICAgICAgICAgICBpZiAoaSA8IHZhbHMubGVuZ3RoICYmIHZhbHNbaV0gIT0gLTEpIHsKICAgICAgICAgICAgICAgIGN1cnIubGVmdCA9IG5ldyBOb2RlKHZhbHNbaV0pOwogICAgICAgICAgICAgICAgcS5vZmZlcihjdXJyLmxlZnQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgaWYgKGkgPCB2YWxzLmxlbmd0aCAmJiB2YWxzW2ldICE9IC0xKSB7CiAgICAgICAgICAgICAgICBjdXJyLnJpZ2h0ID0gbmV3IE5vZGUodmFsc1tpXSk7CiAgICAgICAgICAgICAgICBxLm9mZmVyKGN1cnIucmlnaHQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJvb3Q7CiAgICB9CgogICAgc3RhdGljIExpc3Q8SW50ZWdlcj4gcmVzID0gbmV3IEFycmF5TGlzdDw+KCk7CgogICAgc3RhdGljIHZvaWQgc2VxKE5vZGUgcm9vdCkgewogICAgICAgIGlmIChyb290ID09IG51bGwpIHJldHVybjsKICAgICAgICBzZXEocm9vdC5sZWZ0KTsKICAgICAgICByZXMuYWRkKHJvb3QuZGF0YSk7CiAgICAgICAgc2VxKHJvb3QucmlnaHQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICBpbnQgbiA9IHNjLm5leHRJbnQoKTsKICAgICAgICBpbnRbXSB2YWxzID0gbmV3IGludFtuXTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICB2YWxzW2ldID0gc2MubmV4dEludCgpOwogICAgICAgIH0KCiAgICAgICAgTm9kZSByb290ID0gYnVpbGRUcmVlKHZhbHMpOwogICAgICAgIHNlcShyb290KTsKCiAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgc2IuYXBwZW5kKHJlcy5nZXQoaSkpOwogICAgICAgICAgICBpZiAoaSAhPSByZXMuc2l6ZSgpIC0gMSkgc2IuYXBwZW5kKCIgIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzYi50b1N0cmluZygpKTsKICAgIH0KfQ==