사이버소프트 컴퓨터 회사(프로그래밍 언어 분야의 선두 기업)가 A-- 라는 새 프로그래밍 언어의 배열 주소 계산 기능을 맡기기 위해 여러분을 고용했다. 여러분이 할 일은 x[5, 6] 과 같은 배열 참조를 실제 물리 주소로 변환하는 것이다. 이를 위해 여러 개의 배열 선언과 참조를 읽어 각 참조의 물리 주소를 출력하는 프로그램을 작성한다. 모든 물리 주소는 10진 정수로 출력한다.
배열 참조 $A[i_1, i_2, \ldots, i_D]$ 의 물리 주소는 다음 식으로 계산한다.
$$C_0 + C_1 i_1 + C_2 i_2 + \cdots + C_D i_D$$
여기서 상수 $C_0, \ldots, C_D$ 는 아래와 같이 정의된다.
첫째 줄에 두 양의 정수 $N$ 과 $R$ 이 주어진다. $N$ 은 선언되는 배열의 개수이고, $R$ 은 주소를 계산해야 하는 배열 참조의 개수이다. 이어지는 $N$ 개의 줄에는 배열이 한 줄에 하나씩 선언되고, 그다음 $R$ 개의 줄에는 계산할 배열 참조가 한 줄에 하나씩 주어진다.
각 배열 선언 줄에는 순서대로 다음이 주어진다: 배열 이름(최대 10글자), 배열의 기준 주소를 나타내는 양의 정수, 각 원소의 크기(바이트)를 나타내는 양의 정수, 그리고 차원 수 $D$ ($1 \le D \le 10$). 그 뒤에는 같은 줄에 $D$ 개의 정수 쌍이 이어지며, 이는 각각 차원 $1, \ldots, D$ 의 하한과 상한을 나타낸다.
각 배열 참조 줄에는 배열 이름과, 그에 이어 정수 인덱스 $i_1, i_2, \ldots, i_D$ 가 주어진다. 여기서 $D$ 는 해당 배열의 차원 수이다.
각 참조마다 한 줄에 그 참조와 물리 주소를 함께 출력한다. 형식은 정확히 다음을 따른다.
[ 를 출력한다.] = ).