https://www.bcoi.cn/p/NOIP2007J2T1?tid=69cbf682ed3a654ca6721a39

#include<bits/stdc++.h>
using namespace std;
int n;
int a[114514][4];
int s[6][2];
int main(){
	cin>>n;
	if(n>=5){
		for(int i=1;i<=n;i++){
			cin>>a[i][1];
			cin>>a[i][2];
			cin>>a[i][3];
			a[i][4]=a[i][1]+a[i][2]+a[i][3];
			if(i<=5){
				s[i][1]=i;
				s[i][2]=a[i][4];
			}else{
				for(int j=1;j<=5;j++){
					if(a[i][4]>s[j][2]){
						s[j][1]=i;
						s[j][2]=a[i][4];
						for(int j1=1;j1<=5;j1++){
							if(a[j][4]>s[j1][2]){
							s[j1][1]=j;
							s[j1][2]=a[j][4];
							for(int j2=1;j2<=5;j2++){
								if(a[j1][4]>s[j2][2]){
									s[j2][1]=j1;
									s[j2][2]=a[j1][4];
						
								break;
								}
							}
							break;
							}
						}
						break;
					}
				}
			}
		}
		for(int i=1;i<=5;i++){
			for(int j=i;j<=5;j++){
				if(s[i][2]<s[j][2]){
					swap(s[i][2],s[j][2]);
					swap(s[i][1],s[j][1]);
				}
			}
		}
		for(int i=1;i<=5;i++){
			cout<<s[i][1]<<" "<<s[i][2]<<endl;
		}
	}else{
		for(int i=1;i<=n;i++){
			cin>>a[i][1];
			cin>>a[i][2];
			cin>>a[i][3];
			a[i][4]=a[i][1]+a[i][2]+a[i][3];
			a[i][0]=i;
		}
		for(int i=1;i<=n;i++){
			for(int j=i;j<=n;j++){
				if(a[i][4]<a[j][4]){
					swap(a[i][4],a[j][4]);
					swap(a[i][1],a[j][1]);
					swap(a[i][2],a[j][2]);
					swap(a[i][3],a[j][3]);
					swap(a[i][0],a[j][0]);
				}else{
					continue;
				}
			}
		}
		for(int i=1;i<=n;i++){
			cout<<a[i][0]<<" "<<a[i][4]<<" "<<a[i][1]<<" "<<a[i][2]<<" "<<a[i][3]<<endl;
		}
		/*
		4
		1 1 1
		13 13 13
		6 6 6
		6 6 6
		*/
	}
	return 0;
} 
#include<bits/stdc++.h>
using namespace std;
int n;
int a[4][114514666];
int h[4];
int hanoi(int num,int fr,int to){
	if(num==1){
		return 1;
	}
	if(fr==1){
		if(to==2){
			if(a[fr][h[fr]]<a[to][h[to]]){
				return hanoi(num-1,2,1)+1;
			}else{
				return hanoi(num-1,2,3)+1;
			}
		}
	}
	if(fr==2){
		if(a[fr][h[fr]]<a[to][h[to]]){
			return hanoi(num-1,1,2)+1;
		}else{
			return hanoi(num-1,1,3)+1;
		}
	}
	if(fr==3){
		if(a[fr][h[fr]]<a[to][h[to]]){
			return hanoi(num-1,1,2)+1;
		}else{
			return hanoi(num-1,1,3)+1;
		}
	}
	
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		a[1][i]=i;
	}
	h[1]=n;
	h[2]=0;
	h[3]=0;
	cout<<hanoi(n-1,1,2);
	return 0;
}