import java.io.File;
import java.util.Scanner;
import java.util.ArrayList;
class Main {
public static void main(String[] args) throws Exception {
//change to "input.txt" when ready
File file = new File("testInput.txt");
Scanner s = new Scanner(file);
ArrayList<String> list = new ArrayList<>();
while(s.hasNextLine()){
String curr = s.nextLine();
list.add(curr);
}
//Part 1
int hPos = 0;
int depth = 0;
for(int i = 0; i < list.size(); i++){
String curr = list.get(i);
String direction = getDirection(curr);
int num = getNumber(curr);
if(direction.equals("up")){
depth -= num;
}
else if(direction.equals("down")){
depth += num;
}
else
hPos += num;
}
System.out.println(hPos * depth);
}
public static String getDirection(String input){
if(input.substring(0, 2).equals("up"))
return "up";
else if(input.substring(0, 4).equals("down"))
return "down";
else
return "forward";
}
public static int getNumber(String input){
return Integer.parseInt(input.substring(input.length() - 1));
}
}
forward 5
down 5
forward 8
up 3
down 8
forward 2
forward 9
forward 7
forward 4
down 7
forward 5
down 4
down 2
forward 1
down 6
forward 5
forward 5
forward 8
forward 3
forward 6
down 2
up 3
forward 1
up 4
forward 1
forward 6
up 2
forward 7
up 2
up 3
down 9
up 5
down 5
up 7
down 5
forward 4
forward 1
forward 8
forward 9
forward 3
forward 9
down 1
down 1
down 1
forward 6
up 8
down 2
forward 3
down 9
forward 7
down 5
up 7
down 3
forward 5
forward 9
down 9
up 3
forward 4
forward 8
up 2
forward 4
forward 2
forward 2
forward 8
up 7
up 4
down 3
forward 2
down 9
up 1
forward 2
down 3
forward 2
down 2
up 6
forward 6
forward 2
down 9
forward 3
forward 2
down 1
up 1
down 1
forward 5
forward 4
up 6
forward 6
forward 2
up 9
forward 9
forward 5
down 8
up 9
forward 2
up 3
forward 8
forward 2
down 4
down 1
up 9
up 8
forward 3
forward 9
down 9
down 6
forward 1
forward 5
up 9
down 7
up 9
down 8
down 2
down 2
up 9
forward 7
down 4
down 7
down 8
down 9
down 9
forward 9
down 9
forward 2
down 6
forward 8
forward 1
down 6
down 8
forward 5
forward 3
forward 5
down 5
forward 6
forward 3
forward 4
forward 3
down 2
down 9
down 8
down 9
up 7
up 9
up 1
down 6
down 4
forward 8
forward 5
forward 8
down 5
forward 7
down 9
forward 9
forward 1
up 4
down 4
forward 7
forward 4
up 9
forward 6
down 8
down 5
forward 8
down 6
down 3
down 7
forward 4
down 8
down 1
up 6
down 4
down 9
down 6
forward 7
down 8
forward 5
forward 8
down 7
down 5
forward 1
up 1
down 1
down 6
forward 5
forward 6
down 1
up 6
forward 4
forward 6
down 4
forward 3
up 6
forward 2
forward 9
down 8
forward 8
up 9
forward 3
forward 4
forward 1
down 4
down 5
forward 4
down 6
forward 7
down 7
down 8
up 8
up 5
down 8
down 5
forward 8
forward 2
forward 6
up 5
forward 4
forward 2
forward 1
up 7
forward 1
forward 6
down 8
down 5
down 4
forward 2
up 8
forward 4
up 8
forward 7
forward 5
down 4
up 7
down 5
down 3
forward 2
down 2
down 2
forward 5
forward 2
down 2
forward 5
down 8
forward 7
up 8
down 6
up 5
forward 6
up 9
down 2
down 3
up 1
up 8
forward 9
forward 7
forward 9
forward 3
down 2
up 2
down 2
down 8
up 8
up 6
forward 6
down 9
down 9
up 4
down 3
forward 6
forward 9
down 6
forward 7
forward 4
forward 4
down 9
down 3
forward 1
down 7
forward 2
forward 3
forward 9
forward 5
forward 2
forward 4
forward 8
up 1
forward 5
down 4
down 2
down 7
forward 1
up 1
up 8
up 6
down 1
forward 1
forward 9
forward 8
down 7
forward 6
forward 8
down 7
forward 5
down 5
down 8
down 8
forward 8
up 1
down 7
down 4
up 4
forward 5
up 7
forward 3
forward 2
down 1
forward 3
down 5
forward 4
down 4
forward 6
up 9
forward 3
down 7
forward 7
forward 9
forward 9
forward 4
up 9
up 5
down 6
down 6
forward 8
up 6
down 2
up 5
forward 7
forward 4
down 6
down 4
down 9
down 4
up 2
down 3
down 7
forward 1
forward 4
down 6
forward 3
forward 2
forward 4
down 9
forward 8
down 3
up 4
down 5
forward 2
down 6
forward 8
down 8
down 7
down 4
forward 1
down 3
forward 9
down 2
down 9
down 2
forward 1
down 3
down 2
down 2
up 4
down 8
forward 6
forward 4
forward 4
up 9
forward 3
forward 1
forward 1
up 3
forward 9
down 2
forward 5
down 9
down 2
forward 1
forward 9
down 3
forward 3
up 3
forward 7
down 6
up 8
down 2
down 5
forward 7
down 8
up 5
down 4
up 5
forward 6
forward 3
down 2
forward 4
forward 3
down 8
forward 5
forward 5
down 5
forward 1
forward 8
up 1
down 7
forward 6
forward 3
forward 8
down 9
down 7
forward 1
down 2
down 6
down 3
forward 8
down 7
forward 2
forward 1
forward 5
down 9
forward 2
forward 2
up 4
down 9
down 4
forward 7
down 7
up 8
forward 6
down 9
down 8
up 5
down 8
down 6
forward 9
up 5
up 7
down 3
up 2
down 4
up 8
up 3
down 7
forward 9
forward 7
down 7
forward 5
up 8
forward 1
down 2
forward 8
down 3
up 5
down 9
forward 8
down 7
down 3
down 3
down 2
forward 6
up 5
forward 4
down 4
down 3
down 5
forward 8
down 3
forward 7
forward 2
down 8
down 6
down 9
down 3
down 6
down 7
down 8
up 6
down 7
forward 8
down 9
forward 1
down 6
forward 8
down 5
forward 3
up 8
forward 1
down 6
forward 4
forward 5
forward 8
up 5
forward 4
down 2
down 9
up 2
forward 1
up 8
forward 6
up 4
up 6
forward 4
up 5
forward 6
forward 1
down 3
down 6
up 2
forward 4
up 2
forward 4
forward 6
down 2
down 4
up 5
down 9
up 2
down 4
up 6
forward 3
down 6
down 2
up 8
down 3
down 1
forward 6
forward 5
forward 8
down 4
down 6
down 2
forward 3
down 3
up 8
down 4
forward 5
down 6
down 3
up 2
forward 5
forward 2
down 6
down 8
forward 1
forward 5
forward 7
forward 3
forward 6
down 9
forward 7
forward 4
down 6
down 2
up 8
down 3
down 7
down 7
down 9
down 8
down 6
down 6
up 1
up 6
forward 4
down 8
up 7
down 8
forward 9
down 9
up 9
forward 4
forward 1
down 3
down 8
forward 9
down 9
forward 3
down 2
forward 9
down 2
forward 8
down 7
down 2
forward 4
forward 3
forward 3
down 8
up 3
forward 9
down 1
down 6
up 3
down 6
up 7
forward 9
up 9
down 5
forward 6
up 1
up 6
down 4
forward 9
forward 6
forward 9
down 4
up 9
up 4
forward 2
forward 2
forward 4
up 6
down 1
down 4
forward 9
down 9
forward 3
up 9
down 4
forward 4
down 1
forward 8
forward 2
down 1
down 7
down 8
forward 1
up 7
up 7
forward 1
down 3
up 5
down 4
forward 2
down 5
up 1
down 4
forward 7
down 2
down 5
down 4
forward 7
forward 6
up 9
forward 6
forward 1
forward 7
forward 5
up 6
down 8
forward 8
down 9
down 8
forward 8
down 2
down 5
forward 8
forward 9
down 6
down 3
down 3
up 9
down 6
forward 6
up 2
forward 9
forward 7
forward 6
forward 4
forward 1
down 2
forward 1
forward 3
forward 9
down 9
forward 7
forward 3
down 8
up 7
forward 1
down 8
up 5
down 8
up 3
down 7
forward 2
down 7
forward 2
down 3
forward 3
forward 8
down 4
forward 6
down 3
up 9
forward 9
up 6
up 4
up 6
down 1
forward 3
down 7
down 9
up 9
down 2
up 6
forward 4
down 4
down 3
down 2
down 6
forward 1
forward 1
up 3
forward 5
forward 8
down 1
up 4
forward 3
up 4
down 5
up 7
down 5
down 6
forward 9
forward 8
forward 9
down 6
forward 5
down 3
up 5
down 7
down 5
down 7
up 9
forward 3
forward 4
forward 1
up 3
forward 2
down 4
up 9
down 7
forward 6
forward 5
forward 3
forward 3
forward 9
up 7
down 9
forward 4
down 7
forward 9
forward 5
down 8
up 2
forward 2
down 4
up 5
up 4
forward 5
down 4
down 9
down 7
down 2
forward 1
forward 1
down 4
down 8
down 6
forward 1
up 6
up 3
up 5
down 1
down 5
up 1
up 5
forward 2
up 2
down 3
forward 7
forward 2
down 1
down 9
forward 1
down 1
forward 9
up 9
down 9
forward 9
down 4
down 1
up 5
down 2
forward 9
down 2
up 3
up 6
forward 1
forward 8
down 5
down 8
up 2
down 2
up 4
down 2
down 4
forward 6
up 4
down 1
forward 9
forward 4
down 9
up 7
forward 7
down 3
forward 2
down 6
up 6
down 5
down 7
forward 4
forward 1
forward 7
forward 4
forward 4
up 2
down 2
down 5
forward 7
down 6
forward 8
down 3
down 9
forward 7
forward 1
down 2
up 7
forward 4
forward 2
forward 6
forward 5
forward 9
forward 9
down 9
down 9
up 7
forward 7
forward 7
forward 1
forward 2
down 1
down 4
forward 7
forward 5
down 1
up 2
forward 3
forward 2
forward 1
forward 6
down 4
up 6
forward 7
down 1
forward 4
up 6
down 7
down 4
forward 1
down 8
down 2
down 1
down 8
forward 4
up 8
down 4
up 9
up 3
forward 6
up 9
down 1
forward 3
up 3
forward 5
up 3
down 6
forward 9
down 3
down 3
up 5
forward 5
forward 8
forward 9
down 6
down 3
forward 6
up 4
up 3
forward 3
forward 2
down 2
up 9
forward 4
forward 6
forward 2
up 9
down 2
forward 7
down 7
up 1
forward 2
forward 8
down 2
down 6
down 1
forward 3
forward 5
forward 6
forward 3
down 3
down 7
up 3
forward 2
forward 5
down 9
forward 3
down 9
up 6
down 6
forward 3
down 5
forward 1
down 5
up 3
forward 8
forward 8
down 5
down 6
down 1
forward 9
forward 4
forward 1
forward 8
down 8
down 9
forward 7
forward 9
down 2
down 6
down 8
down 3
forward 5
forward 7
forward 4
down 9
down 2
forward 4
forward 7
down 2
down 7
forward 8
down 8
forward 4
up 8
forward 3
forward 9
forward 4
down 9
down 6
up 1
down 3
down 7
down 4
forward 9
forward 4
up 9
down 6
forward 3
up 1
down 8
down 5
forward 9
down 4
down 2
down 2
down 5
up 5
down 5
forward 5
forward 2
up 1
forward 2
up 2
forward 8
down 2
down 7
forward 1