#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5 + 7;
int n, k, mx = 0;
int a[N], cnt[N];
void sub1() {
int ans = 0;
for (int i = 1; i <= n; i++) ans = max(ans, cnt[a[i]]);
cout << ans << '\n';
}
void sub2() {
int ans = 0;
for (int i = 2; i <= mx * 2; i++) {
int tmp = 0;
for (int j = 1; j <= i / 2; j++) {
if (j != i - j) tmp += min(cnt[j], cnt[i - j]);
else tmp += cnt[j] / 2;
}
ans = max(ans, tmp);
}
cout << ans << '\n';
}
void sub3() {
int ans = 0;
// sum == 3 (1, 1, 1)
ans = max(ans, cnt[1] / 3);
// sum == 4 (1, 1, 2)
ans = max(ans, min(cnt[1] / 2, cnt[2]));
// sum == 5 (1, 2, 2) && (1, 1, 3)
int tmp5 = 0, mx5 = min(cnt[1] / 2, cnt[3]);
for (int i = 0; i <= mx5; i++) {
int rm1 = cnt[1] - i * 2;
tmp5 = max(tmp5, i + min(rm1, cnt[2] / 2));
}
ans = max(ans, tmp5);
// sum == 6 (1, 2, 3) && (2, 2, 2)
int tmp6 = 0, mx6 = cnt[2] / 3;
for (int i = 0; i <= mx6; i++) {
int rm2 = cnt[2] - i * 3;
tmp6 = max(tmp6, i + min({cnt[1], rm2, cnt[3]}));
}
ans = max(ans, tmp6);
// sum == 7 (1, 3, 3) && (2, 2, 3)
int tmp7 = 0, mx7 = min(cnt[1], cnt[3] / 2);
for (int i = 0; i <= mx7; i++) {
int rm3 = cnt[3] - i * 2;
tmp7 = max(tmp7, i + min(rm3, cnt[2] / 2));
}
ans = max(ans, tmp5);
// sum == 8 (2, 3, 3)
ans = max(ans, min(cnt[2], cnt[3] / 2));
// sum == 9 (3, 3, 3)
ans = max(ans, cnt[3] / 3);
cout << ans << '\n';
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
freopen("SANPHAM.inp", "r", stdin);
freopen("SANPHAM.out", "w", stdout);
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> a[i];
cnt[a[i]]++;
mx = max(mx, a[i]);
}
if (k == 1 && n <= 1000) sub1();
else if (k == 2) sub2();
else sub3();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTiA9IDFlNSArIDc7CgppbnQgbiwgaywgbXggPSAwOwppbnQgYVtOXSwgY250W05dOwoKdm9pZCBzdWIxKCkgewoJaW50IGFucyA9IDA7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGFucyA9IG1heChhbnMsIGNudFthW2ldXSk7Cgljb3V0IDw8IGFucyA8PCAnXG4nOwp9Cgp2b2lkIHN1YjIoKSB7CglpbnQgYW5zID0gMDsKCWZvciAoaW50IGkgPSAyOyBpIDw9IG14ICogMjsgaSsrKSB7CgkJaW50IHRtcCA9IDA7CgkJZm9yIChpbnQgaiA9IDE7IGogPD0gaSAvIDI7IGorKykgewkKCQkJaWYgKGogIT0gaSAtIGopIHRtcCArPSBtaW4oY250W2pdLCBjbnRbaSAtIGpdKTsKCQkJZWxzZSB0bXAgKz0gY250W2pdIC8gMjsKCQl9CgkJYW5zID0gbWF4KGFucywgdG1wKTsKCX0KCWNvdXQgPDwgYW5zIDw8ICdcbic7Cn0KCnZvaWQgc3ViMygpIHsKCWludCBhbnMgPSAwOwoJCgkvLyBzdW0gPT0gMyAoMSwgMSwgMSkKCWFucyA9IG1heChhbnMsIGNudFsxXSAvIDMpOwoJCgkvLyBzdW0gPT0gNCAoMSwgMSwgMikKCWFucyA9IG1heChhbnMsIG1pbihjbnRbMV0gLyAyLCBjbnRbMl0pKTsKCQoJLy8gc3VtID09IDUgKDEsIDIsIDIpICYmICgxLCAxLCAzKQoJaW50IHRtcDUgPSAwLCBteDUgPSBtaW4oY250WzFdIC8gMiwgY250WzNdKTsKCWZvciAoaW50IGkgPSAwOyBpIDw9IG14NTsgaSsrKSB7CgkJaW50IHJtMSA9IGNudFsxXSAtIGkgKiAyOwoJCXRtcDUgPSBtYXgodG1wNSwgaSArIG1pbihybTEsIGNudFsyXSAvIDIpKTsKCX0KCWFucyA9IG1heChhbnMsIHRtcDUpOwoJCgkvLyBzdW0gPT0gNiAoMSwgMiwgMykgJiYgKDIsIDIsIDIpCglpbnQgdG1wNiA9IDAsIG14NiA9IGNudFsyXSAvIDM7Cglmb3IgKGludCBpID0gMDsgaSA8PSBteDY7IGkrKykgewoJCWludCBybTIgPSBjbnRbMl0gLSBpICogMzsKCQl0bXA2ID0gbWF4KHRtcDYsIGkgKyBtaW4oe2NudFsxXSwgcm0yLCBjbnRbM119KSk7Cgl9CglhbnMgPSBtYXgoYW5zLCB0bXA2KTsKCQoJLy8gc3VtID09IDcgKDEsIDMsIDMpICYmICgyLCAyLCAzKQoJaW50IHRtcDcgPSAwLCBteDcgPSBtaW4oY250WzFdLCBjbnRbM10gLyAyKTsKCWZvciAoaW50IGkgPSAwOyBpIDw9IG14NzsgaSsrKSB7CgkJaW50IHJtMyA9IGNudFszXSAtIGkgKiAyOwoJCXRtcDcgPSBtYXgodG1wNywgaSArIG1pbihybTMsIGNudFsyXSAvIDIpKTsKCX0KCWFucyA9IG1heChhbnMsIHRtcDUpOwoJCgkvLyBzdW0gPT0gOCAoMiwgMywgMykKCWFucyA9IG1heChhbnMsIG1pbihjbnRbMl0sIGNudFszXSAvIDIpKTsKCQoJLy8gc3VtID09IDkgKDMsIDMsIDMpCglhbnMgPSBtYXgoYW5zLCBjbnRbM10gLyAzKTsKCQoJY291dCA8PCBhbnMgPDwgJ1xuJzsKfQoKc2lnbmVkIG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICAKICAgIGZyZW9wZW4oIlNBTlBIQU0uaW5wIiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJTQU5QSEFNLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIAogICAgY2luID4+IG4gPj4gazsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIGNudFthW2ldXSsrOwogICAgICAgIG14ID0gbWF4KG14LCBhW2ldKTsKICAgIH0KICAgIGlmIChrID09IDEgJiYgbiA8PSAxMDAwKSBzdWIxKCk7CiAgICBlbHNlIGlmIChrID09IDIpIHN1YjIoKTsKICAgIGVsc2Ugc3ViMygpOwogICAgcmV0dXJuIDA7Cn0=