#include <bits/stdc++.h>
using namespace std;
int s;
int v1, v2, v3;
int minA[300001];
int maxA[300001];
int inf = 100000000;
int g;
int ansA, ansB, ansC, ansDiff;
int gcd(int a, int b) {
  if (a == 0 || b == 0) return a + b;
  return gcd(b, a % b);
}
void solve(int A, int B, int C) {
  if (!(A / v1 <= B / v2 && B / v2 <= C / v3)) return;
  int curDiff = abs(A - B) + abs(C - B);
  if (curDiff <= ansDiff) {
    ansDiff = curDiff;
    ansA = A;
    ansB = B;
    ansC = C;
  }
}
int MAIN() {
  int n;
  cin >> n >> s;
  v1 = 0;
  v2 = 0;
  v3 = 0;
  for (int i = 1; i <= n; i++) {
    int t;
    cin >> t;
    if (t == 3) v1++;
    if (t == 4) v2++;
    if (t == 5) v3++;
  }
  g = v1 * v3 / gcd(v1, v3);
  minA[0] = maxA[0] = 0;
  for (int i = 1; i <= s; i++) {
    minA[i] = +inf;
    maxA[i] = -inf;
    if (i % v1 == 0) minA[i] = maxA[i] = i;
  }
  for (int i = v3; i <= s; i++) {
    minA[i] = min(minA[i], minA[i - v3]);
    maxA[i] = max(maxA[i], maxA[i - v3]);
  }
  ansDiff = inf;
  for (int B = 0; B <= s; B += v2) {
    int L = minA[s - B];
    int R = maxA[s - B];
    if (L > R) continue;
    solve(L, B, s - L - B);
    solve(R, B, s - R - B);
    int t = L + g * ((B - L) / g);
    for (int i = -5 * g; i <= 5 * g; i += g) {
      int v = t + i;
      if (L <= v && v <= R) solve(v, B, s - v - B);
    }
    t = L + g * ((s - B - B - L) / g);
    for (int i = -5 * g; i <= 5 * g; i += g) {
      int v = t + i;
      if (L <= v && v <= R) solve(v, B, s - v - B);
    }
    t = L + g * (((v1 * B - L * v2) / v2) / g);
    for (int i = -5 * g; i <= 5 * g; i += g) {
      int v = t + i;
      if (L <= v && v <= R) solve(v, B, s - v - B);
    }
    t = L + g * (((B * v3 - (s - B - L) * v2) / v2) / g);
    for (int i = -5 * g; i <= 5 * g; i += g) {
      int v = t + i;
      if (L <= v && v <= R) solve(v, B, s - v - B);
    }
  }
  if (ansDiff == inf)
    cout << -1 << endl;
  else
    cout << ansA / v1 << " " << ansB / v2 << " " << ansC / v3 << endl;
  return 0;
}
int main() {
  ios ::sync_with_stdio(false);
  cout << fixed << setprecision(16);
  return MAIN();
}
