#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; in(n); in(m); vector rem(n); rep(i,n){ lint input; in(input); rem[i]=input%m; } lint cnt=n; 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; if(rem[*cur_l]==0){ cnt-=count_elem_inc(rem, 0, cur_l); cnt++; } for(; rem[*cur_l]m-rem[*cur_l]; --*cur_r); lint cur_elem=rem[*cur_l]; lint l_cnt=count_elem_inc(rem, cur_elem, cur_l); lint r_cnt=count_elem_dec(rem, m-cur_elem, cur_r); cnt-=min(l_cnt,r_cnt); } if(m%2==0&&rem[*cur_l]==m/2){ cnt-=count_elem_inc(rem, m/2, cur_l); cnt++; } if(cnt==0) cnt=1; out(cnt,endl); return 0; }