#include<bits/stdc++.h>
using namespace std;
int trips(vector<int> &weights){
int ans = 0;
map<int, int> freq;
for(auto val : weights){
freq[val]++;
}
for(auto obj : freq){
int val = obj.second;
if(val == 1){
return -1;
}
ans += val/3;
if(val%3 != 0){
ans += 1;
}
}
return ans;
}
int main(){
vector<int> weights = {2, 4, 6, 6, 4, 2, 4};
cout << trips(weights);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCB0cmlwcyh2ZWN0b3I8aW50PiAmd2VpZ2h0cyl7CiAgICAKICAgIGludCBhbnMgPSAwOwogICAgbWFwPGludCwgaW50PiBmcmVxOwoKICAgIGZvcihhdXRvIHZhbCA6IHdlaWdodHMpewogICAgICAgIGZyZXFbdmFsXSsrOwogICAgfQoKICAgIGZvcihhdXRvIG9iaiA6IGZyZXEpewogICAgCWludCB2YWwgPSBvYmouc2Vjb25kOwogICAgICAgIAogICAgICAgIGlmKHZhbCA9PSAxKXsKICAgICAgICAJcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBhbnMgKz0gdmFsLzM7CiAgICAgICAgaWYodmFsJTMgIT0gMCl7CiAgICAgICAgCWFucyArPSAxOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYW5zOwp9CgppbnQgbWFpbigpewogICAgdmVjdG9yPGludD4gd2VpZ2h0cyA9IHsyLCA0LCA2LCA2LCA0LCAyLCA0fTsKICAgIGNvdXQgPDwgdHJpcHMod2VpZ2h0cyk7CiAgICByZXR1cm4gMDsKfQ==