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 checked = Hash.new(false) counter.each do |i, cnt| j = M - i next if checked[j] checked[i] = true checked[j] = true cnt_1 = ((i + i) % M == 0) ? [1, counter[i]].min : counter[i] cnt_2 = ((j + j) % M == 0) ? [1, counter[j]].min : counter[j] ans += [cnt_1, cnt_2].max end puts ans