시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
테트리스는 너비가 C칸이고 높이가 무한한 필드에서 진행된다. 한 번의 차례에는 아래 그림에 있는 7가지 블록 중 하나를 필드에 떨어뜨린다.

블록을 떨어뜨리기 전에는 블록을 90도, 180도, 270도 회전하거나 왼쪽과 오른쪽으로 옮길 수 있다. 단, 블록의 모든 칸은 필드 안에 있어야 한다. 떨어진 블록은 바닥이나 이미 채워진 칸 위에 멈춘다.
이 문제에서는 일반적인 게임과 달리, 블록을 놓은 뒤 새 블록과 바닥 사이 또는 새 블록과 기존 블록 사이에 빈 칸이 남으면 그 배치는 허용되지 않는다. 즉, 블록이 차지하는 모든 열에서 블록의 가장 아래 칸은 그 열의 현재 높이에 바로 닿아야 한다.
각 열의 높이와 떨어뜨릴 블록 번호 P가 주어질 때, 블록을 놓을 수 있는 서로 다른 위치와 회전의 개수를 구하라.
첫째 줄에 열의 수 C와 떨어뜨릴 블록 번호 P가 주어진다. (1 <= C <= 100, 1 <= P <= 7)
둘째 줄에는 각 열의 높이를 나타내는 정수 C개가 주어진다. 각 높이는 0 이상 100 이하이다.
블록을 떨어뜨리는 방법의 수를 나타내는 정수 하나를 출력한다.