N, M = gets.split.map(&:to_i) A = gets.split.map(&:to_i) counter = A.map { |a| a % M }.tally counter.default = 0 ans = [1, counter[0]].min 1.upto(M / 2) do |i| j = M - i g1 = i.gcd(M) g2 = j.gcd(M) cnt_1 = [counter[i], M / g1 - 1].min cnt_2 = [counter[j], M / g2 - 1].min ans += [cnt_1, cnt_2].max end puts ans