In Queries

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

한 학생 전산 동아리에서 표 형태의 데이터에 대한 질의를 처리하는 소프트웨어 모듈이 필요해 여러분에게 도움을 요청했습니다. 모든 값은 정수이며, 정확히 5개의 열을 가진 표에 저장됩니다.

개발용 초기 표는 다음 함수로 생성됩니다.

f(r, c) = (a · f(r-1, c) + b · f(r, c-1) + x) mod m
f(r, c) = 0   (r = 0 또는 c = 0 인 모든 경우)

여기서 f(r, c) 는 r 행 c 열의 값이며, r = 1 … n, c = 1 … 5 입니다. a, b, x, m, n 은 입력으로 주어지는 시드 값입니다.

모듈은 다음 질의들을 처리해야 합니다.

질의동작예시
insert a b c d e{a, b, c, d, e} 를 새로운 마지막 행으로 추가합니다 (a 는 1열, b 는 2열, …, e 는 5열의 값).insert 2 10 3 4 7
remove rr 행을 삭제합니다.remove 3
max cc 열에서 가장 큰 값을 출력합니다.max 3
min cc 열에서 가장 작은 값을 출력합니다.min 1
range c a bc 열의 값이 a 이상 b 이하인 행의 개수를 출력합니다.range 2 1 10

remove 는 해당 행을 삭제하지만 아래의 행들을 위로 당기지 않습니다. 행은 그 자리에 그대로 남고 데이터만 비워집니다. 삭제할 행이 이미 비어 있거나 범위를 벗어나면 아무 일도 하지 않습니다. insert 는 앞쪽에 비어 있는(이전에 삭제된) 행이 있더라도 항상 새로운 마지막 행으로 추가됩니다.

출력 질의(max, min, range)는 표가 비어 있는 상태에서는 주어지지 않는다고 가정해도 됩니다.

입력

첫 줄에 테스트 케이스의 개수 T 가 주어집니다.

각 테스트 케이스는 초기 표 생성을 위한 시드인 다섯 개의 음이 아닌 정수 a, b, x, m (1m100001 \le m \le 10000), n (0n1000000 \le n \le 100000) 으로 시작합니다. 다음 줄에는 질의의 개수 q (0q1000 \le q \le 100) 가 하나의 정수로 주어집니다. 이어지는 q 개의 줄에는 위에서 설명한 형식 중 하나의 질의가 한 줄에 하나씩 주어집니다.

출력

각 테스트 케이스마다 먼저 Case #X: 를 한 줄에 출력합니다 (X 는 1부터 시작하는 테스트 케이스 번호). 그다음 각 출력 질의(max, min, range)의 결과를 질의가 등장한 순서대로 한 줄에 하나씩 출력합니다.