//このソースコードはpietで書かれたものをc++にコンパイルしたものです。決して闇の呪文ではありません。
const int PUSH=1,POP=2,ADD=10,SUB=11,MULTI=12,DIV=20,MOD=21,NOT=22,GREAT=30,POINT=31,SWITCH=32,DUP=40,ROLL=41,INN=42,INC=50,OUTN=51,OUTC=52;
#include <cstdio>
#include <vector>
#include <stack>
#include <iostream>
#include <string>
using namespace std;
typedef long long ll;
struct cal{
int process;
int next;
cal(int p,int n){
	process=p;next=n;
}
bool operator >(const cal &b) const{return process > b.process;}
};
int main(){
	vector<vector<vector<cal>>> proceed(29,vector<vector<cal>>(4,vector<cal>(2,cal(0,0))));
	proceed[0][0][0]=cal(-1,-1);proceed[0][0][1]=cal(42,4);proceed[0][1][0]=cal(20,9);proceed[0][1][1]=cal(20,9);proceed[0][2][0]=cal(-1,-1);proceed[0][2][1]=cal(-1,-1);proceed[0][3][0]=cal(-1,-1);proceed[0][3][1]=cal(-1,-1);proceed[1][0][0]=cal(-2,2);proceed[1][0][1]=cal(-2,12);proceed[1][1][0]=cal(22,4);proceed[1][1][1]=cal(22,4);proceed[1][2][0]=cal(40,0);proceed[1][2][1]=cal(40,0);proceed[1][3][0]=cal(-1,-1);proceed[1][3][1]=cal(-1,-1);proceed[2][0][0]=cal(-1,-1);proceed[2][0][1]=cal(-1,-1);proceed[2][1][0]=cal(42,16);proceed[2][1][1]=cal(2,18);proceed[2][2][0]=cal(-2,9);proceed[2][2][1]=cal(-2,1);proceed[2][3][0]=cal(-1,-1);proceed[2][3][1]=cal(-1,-1);proceed[3][0][0]=cal(-1,-1);proceed[3][0][1]=cal(-1,-1);proceed[3][1][0]=cal(40,2);proceed[3][1][1]=cal(40,2);proceed[3][2][0]=cal(-2,1);proceed[3][2][1]=cal(-2,1);proceed[3][3][0]=cal(40,2);proceed[3][3][1]=cal(40,2);proceed[4][0][0]=cal(42,7);proceed[4][0][1]=cal(42,7);proceed[4][1][0]=cal(41,9);proceed[4][1][1]=cal(41,9);proceed[4][2][0]=cal(21,0);proceed[4][2][1]=cal(21,0);proceed[4][3][0]=cal(41,1);proceed[4][3][1]=cal(41,1);proceed[5][0][0]=cal(42,1);proceed[5][0][1]=cal(10,13);proceed[5][1][0]=cal(42,9);proceed[5][1][1]=cal(42,9);proceed[5][2][0]=cal(42,1);proceed[5][2][1]=cal(42,1);proceed[5][3][0]=cal(42,1);proceed[5][3][1]=cal(42,1);proceed[6][0][0]=cal(20,3);proceed[6][0][1]=cal(20,3);proceed[6][1][0]=cal(20,3);proceed[6][1][1]=cal(20,3);proceed[6][2][0]=cal(20,3);proceed[6][2][1]=cal(20,3);proceed[6][3][0]=cal(20,3);proceed[6][3][1]=cal(20,3);proceed[7][0][0]=cal(40,8);proceed[7][0][1]=cal(40,8);proceed[7][1][0]=cal(2,9);proceed[7][1][1]=cal(2,9);proceed[7][2][0]=cal(21,4);proceed[7][2][1]=cal(21,4);proceed[7][3][0]=cal(2,1);proceed[7][3][1]=cal(2,1);proceed[8][0][0]=cal(22,1);proceed[8][0][1]=cal(1,10);proceed[8][1][0]=cal(22,9);proceed[8][1][1]=cal(22,9);proceed[8][2][0]=cal(22,9);proceed[8][2][1]=cal(20,7);proceed[8][3][0]=cal(22,1);proceed[8][3][1]=cal(22,1);proceed[9][0][0]=cal(-2,2);proceed[9][0][1]=cal(-2,2);proceed[9][1][0]=cal(-1,-1);proceed[9][1][1]=cal(-1,-1);proceed[9][2][0]=cal(-1,-1);proceed[9][2][1]=cal(-1,-1);proceed[9][3][0]=cal(40,0);proceed[9][3][1]=cal(1,7);proceed[10][0][0]=cal(1,11);proceed[10][0][1]=cal(1,11);proceed[10][1][0]=cal(21,9);proceed[10][1][1]=cal(21,9);proceed[10][2][0]=cal(2,8);proceed[10][2][1]=cal(2,8);proceed[10][3][0]=cal(21,1);proceed[10][3][1]=cal(21,1);proceed[11][0][0]=cal(41,5);proceed[11][0][1]=cal(41,5);proceed[11][1][0]=cal(20,9);proceed[11][1][1]=cal(20,9);proceed[11][2][0]=cal(2,10);proceed[11][2][1]=cal(2,10);proceed[11][3][0]=cal(20,1);proceed[11][3][1]=cal(20,1);proceed[12][0][0]=cal(20,3);proceed[12][0][1]=cal(20,3);proceed[12][1][0]=cal(12,14);proceed[12][1][1]=cal(12,14);proceed[12][2][0]=cal(-2,1);proceed[12][2][1]=cal(-2,1);proceed[12][3][0]=cal(20,3);proceed[12][3][1]=cal(20,3);proceed[13][0][0]=cal(-2,14);proceed[13][0][1]=cal(-2,14);proceed[13][1][0]=cal(32,9);proceed[13][1][1]=cal(32,9);proceed[13][2][0]=cal(50,5);proceed[13][2][1]=cal(50,5);proceed[13][3][0]=cal(32,1);proceed[13][3][1]=cal(32,1);proceed[14][0][0]=cal(1,15);proceed[14][0][1]=cal(1,15);proceed[14][1][0]=cal(51,2);proceed[14][1][1]=cal(51,2);proceed[14][2][0]=cal(-2,13);proceed[14][2][1]=cal(-2,13);proceed[14][3][0]=cal(51,12);proceed[14][3][1]=cal(51,12);proceed[15][0][0]=cal(10,3);proceed[15][0][1]=cal(10,3);proceed[15][1][0]=cal(50,2);proceed[15][1][1]=cal(50,2);proceed[15][2][0]=cal(2,14);proceed[15][2][1]=cal(2,14);proceed[15][3][0]=cal(10,3);proceed[15][3][1]=cal(10,3);proceed[16][0][0]=cal(-1,-1);proceed[16][0][1]=cal(-1,-1);proceed[16][1][0]=cal(40,21);proceed[16][1][1]=cal(40,21);proceed[16][2][0]=cal(20,18);proceed[16][2][1]=cal(20,18);proceed[16][3][0]=cal(21,2);proceed[16][3][1]=cal(21,2);proceed[17][0][0]=cal(30,18);proceed[17][0][1]=cal(30,18);proceed[17][1][0]=cal(-1,-1);proceed[17][1][1]=cal(-1,-1);proceed[17][2][0]=cal(32,24);proceed[17][2][1]=cal(32,24);proceed[17][3][0]=cal(40,9);proceed[17][3][1]=cal(-2,-1);proceed[18][0][0]=cal(-1,-1);proceed[18][0][1]=cal(-1,-1);proceed[18][1][0]=cal(-1,-1);proceed[18][1][1]=cal(-1,-1);proceed[18][2][0]=cal(30,17);proceed[18][2][1]=cal(30,17);proceed[18][3][0]=cal(-2,-1);proceed[18][3][1]=cal(1,2);proceed[19][0][0]=cal(1,24);proceed[19][0][1]=cal(12,9);proceed[19][1][0]=cal(12,9);proceed[19][1][1]=cal(12,9);proceed[19][2][0]=cal(41,28);proceed[19][2][1]=cal(-1,-1);proceed[19][3][0]=cal(12,9);proceed[19][3][1]=cal(12,9);proceed[20][0][0]=cal(41,18);proceed[20][0][1]=cal(41,18);proceed[20][1][0]=cal(-1,-1);proceed[20][1][1]=cal(-1,-1);proceed[20][2][0]=cal(41,18);proceed[20][2][1]=cal(41,18);proceed[20][3][0]=cal(41,18);proceed[20][3][1]=cal(41,18);proceed[21][0][0]=cal(40,18);proceed[21][0][1]=cal(40,18);proceed[21][1][0]=cal(1,22);proceed[21][1][1]=cal(2,20);proceed[21][2][0]=cal(2,20);proceed[21][2][1]=cal(2,20);proceed[21][3][0]=cal(20,16);proceed[21][3][1]=cal(20,16);proceed[22][0][0]=cal(42,18);proceed[22][0][1]=cal(42,18);proceed[22][1][0]=cal(1,20);proceed[22][1][1]=cal(1,20);proceed[22][2][0]=cal(1,20);proceed[22][2][1]=cal(1,20);proceed[22][3][0]=cal(2,21);proceed[22][3][1]=cal(2,21);proceed[23][0][0]=cal(2,24);proceed[23][0][1]=cal(2,24);proceed[23][1][0]=cal(1,19);proceed[23][1][1]=cal(1,19);proceed[23][2][0]=cal(1,19);proceed[23][2][1]=cal(1,19);proceed[23][3][0]=cal(10,9);proceed[23][3][1]=cal(10,9);proceed[24][0][0]=cal(31,17);proceed[24][0][1]=cal(31,17);proceed[24][1][0]=cal(11,9);proceed[24][1][1]=cal(11,9);proceed[24][2][0]=cal(1,25);proceed[24][2][1]=cal(1,23);proceed[24][3][0]=cal(11,9);proceed[24][3][1]=cal(11,9);proceed[25][0][0]=cal(2,24);proceed[25][0][1]=cal(10,9);proceed[25][1][0]=cal(1,19);proceed[25][1][1]=cal(1,19);proceed[25][2][0]=cal(1,19);proceed[25][2][1]=cal(1,19);proceed[25][3][0]=cal(1,19);proceed[25][3][1]=cal(1,19);proceed[26][0][0]=cal(-1,-1);proceed[26][0][1]=cal(-1,-1);proceed[26][1][0]=cal(-1,-1);proceed[26][1][1]=cal(-1,-1);proceed[26][2][0]=cal(-1,-1);proceed[26][2][1]=cal(-1,-1);proceed[26][3][0]=cal(-1,-1);proceed[26][3][1]=cal(-1,-1);proceed[27][0][0]=cal(50,28);proceed[27][0][1]=cal(50,28);proceed[27][1][0]=cal(51,26);proceed[27][1][1]=cal(51,26);proceed[27][2][0]=cal(51,26);proceed[27][2][1]=cal(51,26);proceed[27][3][0]=cal(21,9);proceed[27][3][1]=cal(21,9);proceed[28][0][0]=cal(22,19);proceed[28][0][1]=cal(22,19);proceed[28][1][0]=cal(31,9);proceed[28][1][1]=cal(-1,-1);proceed[28][2][0]=cal(10,27);proceed[28][2][1]=cal(10,27);proceed[28][3][0]=cal(31,9);proceed[28][3][1]=cal(31,9);
	vector<int> codelblock{117, 427, 596, 271, 110, 62, 75, 12, 3, 1008, 1, 1, 1, 1, 1, 1, 66, 105, 871, 152, 156, 3, 1, 1, 3, 2, 3, 1, 2};

	stack<ll> st;
	int nowgroup=0;
	int dp=0;
	int cc=0;
	int endcount=0;
	while(endcount<8){
		if(proceed[nowgroup][dp][cc].process==-1 || proceed[nowgroup][dp][cc].next==-1){
			if(endcount%2==0)
				cc=(cc+1)%2;
			else
				dp=(dp+1)%4;
			endcount++;
		}else{
			bool flag=true;
			endcount=0;
			if(proceed[nowgroup][dp][cc].process==PUSH)
				st.push(codelblock[nowgroup]);
			else if(proceed[nowgroup][dp][cc].process==POP)
				st.pop();
			else if(proceed[nowgroup][dp][cc].process==ADD){
				ll a=st.top();st.pop();
				ll b=st.top();st.pop();
				st.push(b+a);
			}else if(proceed[nowgroup][dp][cc].process==SUB){
				ll a=st.top();st.pop();
				ll b=st.top();st.pop();
				st.push(b-a);
			}else if(proceed[nowgroup][dp][cc].process==MULTI){
				ll a=st.top();st.pop();
				ll b=st.top();st.pop();
				st.push(b*a);
			}else if(proceed[nowgroup][dp][cc].process==DIV){
				ll a=st.top();st.pop();
				ll b=st.top();st.pop();
				st.push(b/a);
			}else if(proceed[nowgroup][dp][cc].process==MOD){
				ll a=st.top();st.pop();
				ll b=st.top();st.pop();
				st.push(b%a);
			}else if(proceed[nowgroup][dp][cc].process==NOT){
				ll a=st.top();st.pop();
				if(a!=0) st.push(0);
				else st.push(1);
			}else if(proceed[nowgroup][dp][cc].process==GREAT){
				ll a=st.top();st.pop();
				ll b=st.top();st.pop();
				st.push(a<b);
			}else if(proceed[nowgroup][dp][cc].process==POINT){
				ll a=st.top();st.pop();
				nowgroup=proceed[nowgroup][dp][cc].next;
				dp=(dp+a%4)%4;
				flag=false;
			}else if(proceed[nowgroup][dp][cc].process==SWITCH){
				ll a=st.top();st.pop();
				nowgroup=proceed[nowgroup][dp][cc].next;
				cc=(cc+a%2)%2;
				flag=false;
			}else if(proceed[nowgroup][dp][cc].process==DUP){
				ll a=st.top();
				st.push(a);
			}else if(proceed[nowgroup][dp][cc].process==ROLL){
				ll b=st.top();st.pop();
				ll a=st.top();st.pop();
				vector<ll> temp(a);
				for(int i=a-1;i>=0;i--){
					temp[i]=st.top();
					st.pop();
				}
				for(int i=0;i<a;i++)
					st.push(temp[(i-b+a)%a]);
			}else if(proceed[nowgroup][dp][cc].process==INN){
				ll a;
				cin >> a;
				st.push(a);
			}else if(proceed[nowgroup][dp][cc].process==INC){
				char c;
				scanf("%c",&c);
				int a= c;
				st.push(a);
			}else if(proceed[nowgroup][dp][cc].process==OUTN){
				ll a=st.top();
				st.pop();
				cout << a;
			}else if(proceed[nowgroup][dp][cc].process==OUTC){
				int a=st.top();st.pop();
				printf("%c",a);
			}
			if(flag)
				nowgroup=proceed[nowgroup][dp][cc].next;
		}
	}
	return 0;
}


Measured memory_bytes: 256