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
//#include <iostream>
//#include <vector>
//
//using namespace std;
//
//unsigned long pow2(unsigned long liczbaKart)
//{
//    unsigned long liczba = 1;
//    for(int i = 0; i < liczbaKart; ++i)
//        liczba *= 2;
//
//    return liczba;
//}
//
//int main()
//{
//    unsigned long liczbaKart, liczbaTasowan, obecnaKarta;
//    cin >> liczbaKart >> liczbaTasowan;
//
//    unsigned long liczbaKart2 = pow2(liczbaKart);
//    if(liczbaTasowan & 1)
//    {
//
//        vector<unsigned long> karty;
//        //karty.reserve(liczbaKart);
//
//        for(int i = 0; i < liczbaKart2; ++i)
//        {
//            cin >> obecnaKarta;
//            //karty[i] = obecnaKarta;
//            karty.push_back(obecnaKarta);
//        }
//        for(int i = liczbaKart2 - 1; i >= 0; --i)
//            cout << karty[i] << " ";
//    }
//    else
//    {
//        for(int i = 0; i < liczbaKart2; ++i)
//        {
//            cin >> obecnaKarta;
//            cout << obecnaKarta << " ";
//        }
//    }
//    return 0;
//}

#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    unsigned long liczbaK, liczbaT;
    cin >> liczbaK >> liczbaT;

    vector<unsigned long> dane ((istream_iterator<unsigned long>(cin)), istream_iterator<unsigned long>());
    if(liczbaT & 1) reverse(dane.begin(), dane.end());
    copy(dane.begin(), dane.end(), ostream_iterator<unsigned long>(cout, " "));

    return 0;
}