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
#include <stdio.h>

long long int n,t;
long long int dwadon;
long long int tab[1<<21 + 4];

/* void printTasuj(int a, int b){ */
/*   if(a==b) */
/*     printf("%lld", tab[a]); */
/*   else { */
/*     int m = (a+b)/2; */
/*     printTasuj(m+1, b); */
/*     printTasuj(a, m); */
/*   } */
/* } */

int main() {
  scanf("%lld%lld", &n, &t);
  dwadon = 1 << n;
  int i;
  for(i = 0; i < dwadon; ++i) {
    scanf("%lld", &tab[i]);
  }
  if(t%2==0) {
    for(i = 0; i<dwadon; ++i){
      printf("%lld ", tab[i]);
    }
  } else {
    for(i = dwadon -1; i>=0; --i){
      printf("%lld ", tab[i]);
    }
  }
  printf("\n");
}