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

using namespace std;
int tab[1048577];
int szp(int n, int l)
{
    if(n==1) return l;
    else if(n%2==0) return szp(n/2,l)*szp(n/2,l);
    else return szp((n-1)/2,l)*szp((n-1)/2, l)*l;
}
int main()
{
    ios_base::sync_with_stdio(0);
    int n,t;
    cin>>n>>t;
    t=t%2;
    n=szp(n,2);

    for(int i=0; i<n; i++)
    {
        cin>>tab[i];
    }
    if(t==1)
    {
        for(int i=n-1; i>=0; i--)cout<<tab[i]<<" ";
    }
    else{
        for(int i=0; i<n; i++)cout<<tab[i]<<" ";
    }
    return 0;
}