m,n=input().split()
m,n=int(m),int(n)
l1 = list(map(int, input().split()))
l=[]
a=maxx=0
for i in range(m):
l.append(i)
sumx=l1[i]
for j in range(1,2**n):
k=l.pop(0)
if k>=m:break
sumx+=l1[k]
l.append(2*k+1)
l.append(2 * k + 2)
del l[:]
if maxx<sumx:
maxx=sumx
a=i
l.append(a)
for j in range(1,2**n):
k=l.pop(0)
if k>=m:break
print(l1[k],end=" ")
l.append(2*k+1)
l.append(2 * k + 2)
bSxuPWlucHV0KCkuc3BsaXQoKQptLG49aW50KG0pLGludChuKQpsMSA9IGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKbD1bXQphPW1heHg9MApmb3IgaSBpbiByYW5nZShtKToKICAgIGwuYXBwZW5kKGkpCiAgICBzdW14PWwxW2ldCgogICAgZm9yIGogaW4gcmFuZ2UoMSwyKipuKToKICAgICAgICBrPWwucG9wKDApCiAgICAgICAgaWYgaz49bTpicmVhawogICAgICAgIHN1bXgrPWwxW2tdCiAgICAgICAgbC5hcHBlbmQoMiprKzEpCiAgICAgICAgbC5hcHBlbmQoMiAqIGsgKyAyKQoKICAgIGRlbCBsWzpdCiAgICBpZiBtYXh4PHN1bXg6CiAgICAgICAgbWF4eD1zdW14CiAgICAgICAgYT1pCmwuYXBwZW5kKGEpCgpmb3IgaiBpbiByYW5nZSgxLDIqKm4pOgogICAgaz1sLnBvcCgwKQogICAgaWYgaz49bTpicmVhawogICAgcHJpbnQobDFba10sZW5kPSIgIikKICAgIGwuYXBwZW5kKDIqaysxKQogICAgbC5hcHBlbmQoMiAqIGsgKyAyKQo=