베라와 삼각관계

친구 쌍마다 모듈러 거듭제곱 값의 이진수 1 개수 홀로 호감 방향이 정해질 때, 세 명이 순환하는 호감 관계의 개수를 센다.

어려움9조합론정수론수학구현아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

베라에게는 00번부터 N1N-1번까지 번호가 붙은 친구 NN명이 있다. 모두 소프트웨어 공학을 전공하느라 연애할 시간이 없지만, 서로 짝사랑은 한다.

음이 아닌 정수 xx에 대해 g(x)g(x)xx를 이진법으로 쓴 결과에 들어 있는 11의 개수로 정의한다. 정수 상수 AA, BB, MM을 써서 f(i,j)=g((ABiN+j)modM)f(i, j) = g((A \cdot B^{i \cdot N + j}) \bmod M)으로 정의한다.

i<ji < j인 친구 iijj에 대해, f(i,j)f(i, j)가 짝수이면 iijj를 짝사랑하고 홀수이면 jjii를 짝사랑한다.

베라는 삼각관계를 재미있어한다. 삼각관계는 iijj를, jjkk를, kkii를 짝사랑하는 세 친구 ii, jj, kk의 집합이다.

NN, MM, AA, BB가 주어질 때 베라의 친구 사이에 삼각관계가 몇 개 있는지 구하라. 세 친구의 집합이 다르면 두 삼각관계는 서로 다르다.

입력

첫째 줄에 NN, MM, AA, BB가 공백으로 구분되어 주어진다.

제한:

  • 3N2000003 \le N \le 200000, 3M2000003 \le M \le 200000
  • 0<A<M0 < A < M, 0<B<M0 < B < M
  • NN, MM, AA, BB는 정수이다.
  • MM은 소수이다.

출력

삼각관계의 개수를 한 줄에 출력한다.

힌트

aba \to b는 친구 aa가 친구 bb를 짝사랑한다는 뜻이다.

첫 번째 예제에서 f(0,1)=g(2)=1f(0, 1) = g(2) = 1, f(0,2)=g(3)=2f(0, 2) = g(3) = 2, f(1,2)=g(2)=1f(1, 2) = g(2) = 1이다. 따라서 020 \to 2, 212 \to 1, 101 \to 0이고 삼각관계는 하나다.

두 번째 예제에서는 101 \to 0, 202 \to 0, 212 \to 1이므로 삼각관계가 없다.