#include <bits/stdc++.h>
using namespace std;
const long long INFLL = 3e18 + 1;
long long n, s;
long long a, c3, c4, c5, k3, k4, k5;
long long ans = INFLL, Ak3, Ak4, Ak5;
double abss(double x) {
  if (x >= 0) return x;
  return -x;
}
long long f(long long k3, long long k4, long long k5) {
  if (!(k3 <= k4 && k4 <= k5)) return INFLL;
  if (k3 < 0) return INFLL;
  return abss(k3 * c3 - k4 * c4) + abss(k5 * c5 - k4 * c4);
}
long long gcd(long long a, long long b) {
  if (a < b) swap(a, b);
  if (b == 0) return a;
  return gcd(b, a % b);
}
pair<long long, long long> gcdext(long long a, long long b) {
  if (a == 0) {
    return {0, 1};
  }
  pair<long long, long long> XY = gcdext(b % a, a);
  pair<long long, long long> nXY;
  nXY.first = XY.second - (b / a) * XY.first;
  nXY.second = XY.first;
  return nXY;
}
long long myFind(long long mn, long long d, long long izn) {
  long long a = (mn - izn) / d + ((mn - izn) % d > 0);
  return a;
}
long long v[8];
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> s;
  for (long long i = 0; i < n; i++) {
    cin >> a;
    if (a == 3) c3++;
    if (a == 4) c4++;
    if (a == 5) c5++;
  }
  long long g = gcd(c3, c5);
  for (long long k4 = 0; k4 <= s; k4++) {
    long long r = s - k4 * c4;
    if (r <= 0) continue;
    if (r % g != 0) continue;
    long long a = c3 / g;
    long long b = c5 / g;
    pair<long long, long long> XY = gcdext(a, b);
    long long k3 = XY.first * r / g;
    long long k5 = XY.second * r / g;
    long long w = k4 * c4;
    v[0] = (myFind(w, b * c3, k3 * c3));
    v[1] = (myFind(w, b * c3, k3 * c3) - 1);
    v[2] = (myFind(w, -a * c5, k5 * c5));
    v[3] = (myFind(w, -a * c5, k5 * c5) - 1);
    v[4] = (myFind(0, b, k3));
    v[5] = (myFind(k4, b, k3));
    if (v[5] * b + k3 > k4) v[5]--;
    v[6] = myFind(k4, -a, k5);
    for (long long ii = 0; ii < 7; ii++) {
      long long i = v[ii];
      k3 = k3 + i * b;
      k5 = k5 - i * a;
      if (f(k3, k4, k5) < ans) {
        ans = f(k3, k4, k5);
        Ak3 = k3;
        Ak4 = k4;
        Ak5 = k5;
      }
      k3 = k3 - i * b;
      k5 = k5 + i * a;
    }
  }
  if (ans == INFLL) {
    cout << -1;
  } else {
    cout << Ak3 << " " << Ak4 << " " << Ak5 << endl;
  }
}
