WSET


Submit solution

Points: 10
Time limit: 1.0s
Memory limit: 512M

Problem type

Cho số nguyên \(N\) và dãy số nguyên \(A_1,A_2,…,A_N\). Cho số nguyên tố \(p\).

Một tập hợp đẹp \(S\) là tập hợp các phần tử trong dãy sao cho đối với bất kỳ \(A_i\) và \(A_j\) nào có trong tập hợp \(S\) đều thỏa điều kiện:\((A_i×A_j)\) mod p ≠1.

Yêu cầu: Tìm tập hợp S chứa các phần tử trong dãy \(A_1,A_2,…,A_N\) sao cho tập \(S\) là đẹp và số lượng phần tử trong \(S\) là lớn nhất. Lưu ý rằng hai tập hợp được coi là khác nhau nếu chúng chứa ít nhất một phần tử khác nhau. Hai tập hợp được coi là giống nhau nếu chúng chứa cácphần tử giống nhau.

Input

  • Dòng thứ nhát chứa hai số nguyên \(N,p\) (\(2 ≤ N ≤ 2*10^5; 2 < p < 10^5 \)).

  • Dòng thứ hai chứa \(N\) số nguyên \( A_1,A_2,…,A_N \) (1 ≤ A_i ≤ 10^18 )

Output

  • Ghi một số nguyên là số lượng phần tử lớn nhất của tập S tìm được.

Sample Input

5 5
2 3 4 22 33

Sample Output

2

Giải thích

Có 2 tập hợp đẹp là {2, 22} và {3, 33}. Do đó, Số lượng phần tử lớn nhất của tập hợp đẹp = 2.


Comments

There are no comments at the moment.