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<cstdio>

int n, t, N;
int tab[2000000];

void wypisz(int S, int E){
   if(S==E){
      printf("%d ",tab[S]);
      return;
      }
   int half = (E - S + 1) >> 1;;
   wypisz(S + half, E);
   wypisz(S, E - half);

   }
int main(){
   scanf("%d%d",&n,&t);
   N = 1 << n;
   for(int i = 0; i < N; ++i)
      scanf("%d",&tab[i]);
   if ((t&1) == 0)
      for(int i=0;i < N; ++i)
      printf("%d ",tab[i]);
   else
      wypisz(0, N-1);
   }