classSolution{public:constint mod =1e9+7;intmyPow(longlong x,int N){longlong ans =1;while(N){if(N &1) ans =(ans * x)% mod;
x =(x * x)% mod;
N >>=1;}return ans;}intcuttingRope(int n){if(n <=3)return n -1;if(n ==4)return4;int N = n /3;if(n %3==1) N--;longlong ans =myPow(3, N);if(n %3==2) ans *=2;elseif(n %3==1) ans = ans *4;return(int)(ans % mod);}};
classSolution{public:constint mod =1e9+7;intmyPow(int x,int N){if(N ==0)return1;longlong temp =0;if(N %2){
temp =myPow(x, N -1);return(temp * x)% mod;}
temp =myPow(x, N /2);return(temp * temp)% mod;}intcuttingRope(int n){if(n <=3)return n -1;if(n ==4)return4;longlong ans =3;int N = n /3;if(n %3==1) N--;
ans =myPow(3, N);if(n %3==2) ans *=2;elseif(n %3==1) ans = ans *4;return(int)(ans % mod);}};
classSolution{public:constint mod =1e9+7;intcuttingRope(int n){if(n <=3)return n -1;if(n ==4)return4;longlong ans =1;int N = n /3;if(n %3==1) N--;for(int ii =0; ii < N; ii++) ans =(ans *3)% mod;if(n %3==2) ans *=2;elseif(n %3==1) ans = ans *4;return(int)(ans % mod);}};