1 #include <iostream>
2 #include <stack>
3 using namespace std;
4 stack<int> S[3];
5 int ans;
6 void move(int x,int y){
7 int temp=S[x].top();
8 S[x].pop();
9 S[y].push(temp);
10 cout<<x<<" --> "<<y<<endl;
11 ans++;
12 }
13 void hanoi(int A,int B,int C,int n){
14 if(n==1){
15 move(A,C);
16 return;
17 }
18 hanoi(A,C,B,n-1);
19 move(A,C);
20 hanoi(B,A,C,n-1);
21 }
22 int main() {
23 int n;
24 cin>>n;
25 for(int i=n;i>=1;i--){
26 S[0].push(i);
27 }
28 hanoi(0,1,2,n);
29 while(!S[2].empty()){
30 S[2].pop();
31 }
32 cout<<"¹²"<<ans<<"´Î";
33 return 0;
34 }