import java.util.Scanner;

public class Main {
	//フィールド
	int top = 0; //スタックポインタ
	int[] S = new int[101]; //スタック

	//初期化
	void initialize() {
		top = 0;
	}

	//要素が存在しないかを判定
	boolean isEmpty() {
		return top == 0;
	}

	//要素が満タンかどうか判定
	boolean isFull() {
		return top >= S.length;
	}

	//要素の追加
	void push(int x) {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	}

	//要素の取り出し
	int pop() {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	}

	public static void main(String[] args) {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	}

}
 import java.util.Scanner; Scanner java.util public class Main {
	//フィールド
	int top = 0; //スタックポインタ
	int[] S = new int[101]; //スタック

	//初期化
	void initialize() {
		top = 0;
	}

	//要素が存在しないかを判定
	boolean isEmpty() {
		return top == 0;
	}

	//要素が満タンかどうか判定
	boolean isFull() {
		return top >= S.length;
	}

	//要素の追加
	void push(int x) {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	}

	//要素の取り出し
	int pop() {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	}

	public static void main(String[] args) {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	}

} Main //フィールド
	int top = 0; //スタックポインタ top 0 int[] S = new int[101]; //スタック S new int[101] 101 //初期化
	void initialize() {
		top = 0;
	} initialize {
		top = 0;
	} top = 0 top 0 //要素が存在しないかを判定
	boolean isEmpty() {
		return top == 0;
	} isEmpty {
		return top == 0;
	} return top == 0; top == 0 top 0 //要素が満タンかどうか判定
	boolean isFull() {
		return top >= S.length;
	} isFull {
		return top >= S.length;
	} return top >= S.length; top >= S.length top S.length S S.length //要素の追加
	void push(int x) {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	} push {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	} if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		} !isFull() isFull() isFull { //配列に空きがある
			top++;
			S[top] = x;
		} top++ top S[top] = x S[top] S top x { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		} System.err.println("エラー（オーバーフロー）") System.err.println System.err System System.err "エラー（オーバーフロー）" int x x //要素の取り出し
	int pop() {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	} pop {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	} if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		} isEmpty() isEmpty { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		} System.err.println("エラー（アンダーフロー）") System.err.println System.err System System.err "エラー（アンダーフロー）" top-- top return S[top + 1]; S[top + 1] S top + 1 top 1 public static void main(String[] args) {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	} main {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	} Main main = new Main(); main new Main() Scanner sc = new Scanner(System.in); sc new Scanner(System.in) if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		} sc.hasNextLine() sc.hasNextLine sc {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		} String s = sc.nextLine(); s sc.nextLine() sc.nextLine sc String[] ary = s.split("\\s"); ary s.split("\\s") s.split s "\\s" for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			} int i = 0; int i = 0; i 0 i < ary.length i ary.length ary ary.length i++ i++ i {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			} {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			} String str = ary[i]; str ary[i] ary i int a; a int b; b switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				} str case "+": "+" case "+": a = main.pop() a main.pop() main.pop main b = main.pop() b main.pop() main.pop main main.push(a + b) main.push main a + b a b break; case "-": "-" case "-": a = main.pop() a main.pop() main.pop main b = main.pop() b main.pop() main.pop main main.push(b - a) main.push main b - a b a break; case "*": "*" case "*": a = main.pop() a main.pop() main.pop main b = main.pop() b main.pop() main.pop main main.push(a * b) main.push main a * b a b break; default: default: main.push(Integer.parseInt(str)) main.push main Integer.parseInt(str) Integer.parseInt Integer str break; System.out.println(main.S[main.top]) System.out.println System.out System System.out main.S[main.top] main.S main main.S main.top main main.top String[] args args public class Main {
	//フィールド
	int top = 0; //スタックポインタ
	int[] S = new int[101]; //スタック

	//初期化
	void initialize() {
		top = 0;
	}

	//要素が存在しないかを判定
	boolean isEmpty() {
		return top == 0;
	}

	//要素が満タンかどうか判定
	boolean isFull() {
		return top >= S.length;
	}

	//要素の追加
	void push(int x) {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	}

	//要素の取り出し
	int pop() {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	}

	public static void main(String[] args) {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	}

} public class Main {
	//フィールド
	int top = 0; //スタックポインタ
	int[] S = new int[101]; //スタック

	//初期化
	void initialize() {
		top = 0;
	}

	//要素が存在しないかを判定
	boolean isEmpty() {
		return top == 0;
	}

	//要素が満タンかどうか判定
	boolean isFull() {
		return top >= S.length;
	}

	//要素の追加
	void push(int x) {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	}

	//要素の取り出し
	int pop() {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	}

	public static void main(String[] args) {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	}

} Main
import java.util.Scanner;

public class Main {
	//フィールド
	int top = 0; //スタックポインタ
	int[] S = new int[101]; //スタック

	//初期化
	void initialize() {
		top = 0;
	}

	//要素が存在しないかを判定
	boolean isEmpty() {
		return top == 0;
	}

	//要素が満タンかどうか判定
	boolean isFull() {
		return top >= S.length;
	}

	//要素の追加
	void push(int x) {
		if (!isFull()) { //配列に空きがある
			top++;
			S[top] = x;
		} else { //配列に空きがない
			System.err.println("エラー（オーバーフロー）");
		}
	}

	//要素の取り出し
	int pop() {
		if (isEmpty()) { //配列に要素がある
			System.err.println("エラー（アンダーフロー）");
		}
		top--;
		return S[top + 1];
	}

	public static void main(String[] args) {
		Main main = new Main();
		Scanner sc = new Scanner(System.in);
		if (sc.hasNextLine()) {
			String s = sc.nextLine();
			String[] ary = s.split("\\s");
			//操作
			for (int i = 0; i < ary.length; i++) {
				String str = ary[i];
				int a;
				int b;
				switch (str) {
				//演算子だった場合
				case "+":
					a = main.pop();
					b = main.pop();
					main.push(a + b);
					break;
				case "-":
					a = main.pop();
					b = main.pop();
					main.push(b - a);
					break;
				case "*":
					a = main.pop();
					b = main.pop();
					main.push(a * b);
					break;
				//数字だった場合
				default:
					main.push(Integer.parseInt(str));
					break;
				}
			}
		}
		System.out.println(main.S[main.top]);
	}

}

