타일 블록 쌓기
면접 대비시간 제한1초메모리 제한128 MB
두 종류의 돌기 수가 아래 블록보다 작아지지 않도록 쌓을 때 가장 높이 쌓는 블록 수를 구합니다.
문제
마이클은 생일 선물로 조부모에게서 게임 세트를 받았다. 상자 안에는 타일 블록 개가 들어 있고, 블록의 모양은 다음과 같다.

그림 1: 파라미터가 인 타일 블록.
블록마다 파라미터 이 정해져 있다. 윗면에는 왼쪽에 돌기가 개, 가운데에 돌기가 개 튀어나와 있고, 아랫면에는 같은 자리에 왼쪽 개, 가운데 개의 홈이 파여 있다.
블록을 같은 블록 위에 올릴 수 있다는 것은 쉽게 알 수 있다. 쌓는 방법은 이것만이 아니다. 블록을 블록 위에 올릴 수 있는 조건은 이고 인 것이며, 이 조건을 만족할 때만 올릴 수 있다.
블록 개가 담긴 상자 가 주어진다. 블록 의 파라미터는 이다. 이 상자의 블록으로 탑을 쌓을 때, 가장 높은 탑에 들어가는 블록의 개수를 구하라.
입력
입력에는 게임 상자 여러 개가 이어서 주어진다. 각 상자는 정수 으로 시작하고, 은 그 상자에 든 블록의 개수다. 이어지는 개 줄에는 각각 정수 두 개가 주어지며, 번째 블록의 왼쪽 파라미터 와 가운데 파라미터 를 뜻한다.
은 최대 이고, 와 는 이상 이하다. 은 입력의 끝을 뜻한다.
출력
상자마다 그 상자의 블록으로 쌓을 수 있는 가장 높은 탑의 블록 개수를 한 줄에 하나씩 출력한다. 모든 상자를 처리한 뒤에는 마지막 줄에 별표 * 하나만 출력한다.