1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<bits/stdc++.h>

#define FOR(i,a,b) for(int i = a; i <= b; i++)
#define FORW(i,a,b) for(int i = a; i < b; i++)
#define FORD(i,a,b) for(int i = a; i >= b; i--)
#define MP make_pair
#define PB push_back
#define ALL(x) (x).begin(), (x).end()


using namespace std;

int main() {
	int n,t;
	scanf("%d%d",&n,&t);
	n = 1<<n;
	vector<int> V;
	FOR(i,1,n) {
		int a;
		scanf("%d",&a);
		V.PB(a);
	}
	if(t%2)
	reverse(ALL(V));
	for(int v : V) printf("%d ", v); printf("\n");
}