#include #include #include #include #include #include #include #define rep(i,n) for(i=0; i> a #define out(a,b) cout << a << b using namespace std; using lint = long long; lint count_elem_inc(vector x, lint elem, lint *i){ lint cnt=0; for(; *i x, lint elem, lint *i){ lint cnt=0; for(; *i>0; --*i){ if(x[*i]!=elem) break; cnt++; } return cnt; } int main(void){ lint i, j; lint p, n, m, cnt=0; in(n); in(m); vector rem(n); rep(i,n){ lint input; in(input); rem[i]=input%m; } sort(rem.begin(),rem.end()); lint *cur_l, *cur_r; lint init_l=0, init_r=n-1; cur_l=&init_l; cur_r=&init_r; for(i=1; im-i; --*cur_r); lint l_cnt=count_elem_inc(rem, i, cur_l); lint r_cnt=count_elem_dec(rem, m-i, cur_r); cnt+=max(l_cnt,r_cnt); } if(m%2==0&&rem[*cur_l]==m/2) cnt++; if(rem[0]==0) cnt++; if(cnt==0) cnt=1; out(cnt,endl); return 0; }