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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include<bits/stdc++.h>
using namespace std;
vector<int>v;
int pow(int a)
{
	int w=1;
	for(int b=0;b<a;b++)
	{
		w*=2;
	}
	return w;
}
/*vector<int> zamien(int a,int b)
{
	if((a+1)==b)
	{
		nt c=v[a];
		v[a]=v[b];
		v[b]=c;
		vector<int>y;
		y.push_back(v[b]);
		y.push_back(v[a]);
		return y;
	}
	else
	{
		vector<int>v1;
		vector<int>v2;
		v1=zamien
	}
		
}*/
int main()
{
	int n,k,x;
	scanf("%d%d",&n,&k);
	int p=pow(n);
	for(int a=0;a<p;a++)
	{
		scanf("%d",&x);
		v.push_back(x);
	}
	if(k%2==0)
	{
		for(int a=0;a<p;a++)
		{
			printf("%d ",v[a]);
		}
	}
	else
	{
		for(int a=p-1;a>=0;a--)
		{
			printf("%d ",v[a]);
		}
	}
	/*for(int a=2;a<=p;a*=2)
	{
		for(int b=0;b<p/a;b++)
		{
			for(int c=b*2;c<a/2+b*2;c++)
			{
				cout<<"a "<<a<<" b "<<b<<" c "<<c<<" c+a/2 "<<c+a/2<<" v[c] "<<v[c]<<" v[c+a/2] "<<v[c+a/2]<<" p/a "<<p/a<<"\n";
				for(int o=0;o<p;o++)
					cout<<v[o]<<" ";
				cout<<"\n";
				int q=v[c];
				v[c]=v[c+a/2+b*2];
				v[c+a/2+b*2]=q;
				for(int o=0;o<p;o++)
					cout<<v[o]<<" ";
				cout<<"\n";
			}
		}
	}*/

	
}