피라미드

선형 점화식으로 n줄 삼각뿔을 만들고, 아래 방향 삼각형 부분뿔 안의 최댓값을 묻는 질의에 답한다.

보통7동적 계획법배열구현아직 제출이 없습니다시간 제한4초메모리 제한512 MB

문제

미르코와 슬라브코는 사막을 걷다가 피라미드를 발견했다. 문에 붙은 작은 콘솔에는 여섯 개의 정수 nn, vv, aa, bb, cc, mm으로 된 수수께끼가 떠 있다. 이 수가 나타내는 피라미드를 만들어 콘솔에 입력해야 문이 열린다.

피라미드는 nn개의 행으로 이루어진다. ii번째 행에는 ii개의 수 p(i,1)p(i,1), p(i,2)p(i,2), \dots, p(i,i)p(i,i)가 놓이고, 각 값은 다음 규칙으로 정한다.

  1. p(1,1)=vp(1,1) = v. 이 값에는 나머지 연산을 하지 않으므로, vmv \ge m이어도 p(1,1)p(1,1)vv 그대로다.
  2. 2in2 \le i \le n일 때 p(i,1)=(c×p(i1,1))modmp(i,1) = (c \times p(i-1,1)) \bmod m
  3. 2in2 \le i \le n이고 2ji2 \le j \le i일 때 p(i,j)=(a×p(i,j1)+b×p(i1,j1))modmp(i,j) = (a \times p(i,j-1) + b \times p(i-1,j-1)) \bmod m

문이 열리면 콘솔이 질문 qq개를 던진다. 각 질문은 세 정수 rr, ss, xx로 주어지고, 꼭대기가 p(r,s)p(r,s)이고 한 변의 길이가 xx인 부분 피라미드를 가리킨다. 이 부분 피라미드는 rir+x1r \le i \le r+x-1sjs+(ir)s \le j \le s+(i-r)를 동시에 만족하는 칸 p(i,j)p(i,j)를 모두 모은 것이다. 예를 들어 r=2r=2, s=2s=2, x=2x=2인 부분 피라미드는 p(2,2)p(2,2), p(3,2)p(3,2), p(3,3)p(3,3) 세 칸으로 이루어지고, 그림에서 빨간색으로 칠한 부분이다. 질문마다 그 부분 피라미드에 들어 있는 수의 최댓값을 답해야 한다.

입력

첫째 줄에 여섯 정수 nn, vv, aa, bb, cc, mm이 공백으로 구분되어 주어진다. (1n40001 \le n \le 4000, 1v1091 \le v \le 10^9, 1a1091 \le a \le 10^9, 1b1091 \le b \le 10^9, 1c1091 \le c \le 10^9, 2m1092 \le m \le 10^9)

둘째 줄에 질문의 개수 qq가 주어진다. (1q5×1051 \le q \le 5 \times 10^5)

이어지는 qq개의 줄에 각각 세 정수 rr, ss, xx가 주어진다. (1rn1 \le r \le n, 1sr1 \le s \le r, 1xnr+11 \le x \le n-r+1)

출력

qq개의 줄을 출력한다. kk번째 줄에는 kk번째 질문이 가리키는 부분 피라미드에 들어 있는 수의 최댓값을 출력한다.