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

int mem[1024 * 1024];

int main()
{
    int n, t;
    scanf("%d %d", &n, &t);
    const int count = 1 << n;
    
    for (int i = 0; i < count; i++) {
        scanf("%d", mem + i);
    }

    if (t & 1) {
        printf("%d", mem[count - 1]);
        for (int i = count - 1 - 1; i >= 0; i--) {
            printf(" %d", mem[i]);
        }
    }
    else {
        printf("%d", mem[0]);
        for (int i = 1; i < count; i++) {
            printf(" %d", mem[i]);
        }
    }

    putchar('\n');
}