func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T, typename U>   inline void smin(T &a, U b) {     if (a > b) a = b;   }   template <typename T, typename U>   inline void smax(T &a, U b) {     if (a < b) a = b;   }   int power(int a, int b, int m, int ans = 1) {     for (; b; b >>= 1, a = 1LL * a * a % m)       if (b & 1) ans = 1LL * ans * a % m;     return ans;   }   int cnt[10];   int ans[5], id[5];   int main() {     int n, s;     scanf( %d%d , &n, &s);     int a;     for (int i = 0; i < n; i++) {       scanf( %d , &a);       cnt[a]++;     }     int A, B, C, mx = 0x3f3f3f3f;     for (int i = s / n; i >= 0; i--) {       id[0] = i;       A = cnt[3] * id[0];       for (int j = (s - A) / (cnt[4] + cnt[5]); j >= i; j--) {         id[1] = j;         B = cnt[4] * id[1];         C = s - A - B;         id[2] = C / cnt[5];         if (C % cnt[5]) continue;         int tmp = abs(A - B) + abs(B - C);         if (tmp >= mx && B <= C) break;         if (tmp < mx) {           ans[0] = id[0];           ans[1] = id[1];           ans[2] = id[2];           mx = tmp;         }       }     }     if (mx == 0x3f3f3f3f)       puts( -1 );     else       printf( %d %d %d n , ans[0], ans[1], ans[2]);     return 0;   }   