#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
ll n,k; cin >> n >> k;
ll sum = 0;
vector <ll> nums(n);
map <ll,ll> mp;
for (ll i=0; i<n; i++) {
cin >> nums[i];
mp[ nums[i]%k ]++;
}
for (auto i:mp) {
if (mp.count(k-i.first) && i.first!=0) {
sum += min(i.second, mp[k-i.first]);
}
else if (i.first==0) {
sum += i.second/2*2;
}
}
cout << sum;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojaW5jbHVkZSA8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPgp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKI2RlZmluZSBvcmRlcmVkX3NldCB0cmVlPGludCwgbnVsbF90eXBlLGxlc3M8aW50PiwgcmJfdHJlZV90YWcsdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPgoKCiNkZWZpbmUgbGwgbG9uZyBsb25nCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKTsKCgoJbGwgbixrOyBjaW4gPj4gbiA+PiBrOwoJbGwgc3VtID0gMDsKCXZlY3RvciA8bGw+IG51bXMobik7CgltYXAgPGxsLGxsPiBtcDsKCglmb3IgKGxsIGk9MDsgaTxuOyBpKyspIHsKICAgICAgICBjaW4gPj4gbnVtc1tpXTsKCiAgICAgICAgbXBbIG51bXNbaV0layBdKys7Cgl9CgoJZm9yIChhdXRvIGk6bXApIHsKICAgICAgICBpZiAobXAuY291bnQoay1pLmZpcnN0KSAmJiBpLmZpcnN0IT0wKSB7CiAgICAgICAgICAgIHN1bSArPSBtaW4oaS5zZWNvbmQsIG1wW2staS5maXJzdF0pOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChpLmZpcnN0PT0wKSB7CiAgICAgICAgICAgIHN1bSArPSBpLnNlY29uZC8yKjI7CiAgICAgICAgfQoJfQoKCWNvdXQgPDwgc3VtOwoKCXJldHVybiAwOwoKfQo=