감성 테트리스
시간 제한1초메모리 제한512 MB
가로 1x4 블록과 세로 4x1 블록을 Q번 떨어뜨립니다. 매번 떨어진 블록을 직접 또는 간접으로 받치는 블록의 개수를 구합니다.
문제
디디는 크기의 'ㅡ'자 블럭과 크기의 'ㅣ'자 블럭만 사용하는 테트리스를 하고 있다. 이 테트리스에서는 블럭을 떨어뜨릴 위치만 정하면 그 위치에서 수직으로 떨어진다. 블럭을 좌우로 움직이거나 회전시킬 수 없다. 떨어지는 블럭의 아랫면이 다른 블럭의 윗면이나 바닥과 1칸이라도 맞닿으면 블럭은 멈추고 맞닿은 면 위에 쌓인다.

'이 블럭이 떨어지면 그 밑에 있는 블럭들은 많이 아프겠ㄷr...' 감성으로 테트리스를 하는 디디는 블럭이 떨어질 때 하중을 받는 블럭의 개수를 구하려고 한다. 떨어지는 블럭의 아랫면과 면을 공유하는 블럭은 하중을 받는다. 하중을 받은 블럭의 아랫면과 면을 공유하는 블럭도 하중을 받는다.

<빨간색 블럭은 이번에 떨어뜨린 블럭이며, 노란색 블럭은 이때 하중을 받는 블럭이다.>
착한 leejseo는 감성이 풍부한 디디를 위해, 디디가 블럭을 떨어뜨릴 때마다 그 블럭이 받는 하중의 블럭 개수를 구하는 프로그램을 작성하려고 한다. leejseo를 따라서 디디를 도와주자.
입력
첫째 줄에 디디가 떨어뜨린 블럭의 개수 ()가 주어진다.
둘째 줄부터 개의 각 줄에는 디디가 떨어뜨린 블럭의 정보가 주어진다. 각 줄은 아래 두 형식 중 하나이다.
- 1 : 블럭의 왼쪽 끝 칸이 위치 에 오도록 'ㅡ'자 블럭을 떨어뜨린다.
- 2 : 위치 에 'ㅣ'자 블럭을 떨어뜨린다.
는 항상 정수이며, 어떤 블럭의 부분도 위치 1부터 400,000까지의 범위를 벗어나지 않는다.
출력
개의 각 줄에 디디가 블럭을 떨어뜨릴 때마다, 그 블럭이 하중을 받는 블럭의 개수를 출력한다.