#include <bits/stdc++.h>
using namespace std;
int Get() {
  char c;
  while (c = getchar(), c < '0' || c > '9')
    ;
  int X = 0;
  while (c >= '0' && c <= '9') {
    X = X * 10 + c - 48;
    c = getchar();
  }
  return X;
}
const int inf = 1000000000;
int GCD(int a, int b) { return b ? GCD(b, a % b) : a; }
int Solve(int a, int b, int c) {
  return a ? ((c - b * Solve(b % a, a, c % a)) / a) : 0;
}
int GetMin(int L, int R, int a, int b, int c) {
  if (L > R) return -1;
  int K = GCD(a, b);
  if (c % K) return -1;
  a /= K;
  b /= K;
  c /= K;
  int X = Solve(a, b, c);
  if (X < L) X += ((L - X - 1) / b + 1) * b;
  if (X > L) X -= (X - L) / b * b;
  return (X <= R) ? X : -1;
}
int GetMax(int L, int R, int a, int b, int c) {
  if (L > R) return -1;
  int K = GCD(a, b);
  if (c % K) return -1;
  a /= K;
  b /= K;
  c /= K;
  int X = Solve(a, b, c);
  if (X > R) X -= ((X - R - 1) / b + 1) * b;
  if (X < R) X += (R - X) / b * b;
  return (X >= L) ? X : -1;
}
int main() {
  int N = Get(), S = Get(), a = 0, b = 0, c = 0;
  while (N--) {
    int X = Get();
    if (X == 3) a++;
    if (X == 4) b++;
    if (X == 5) c++;
  }
  int Ans = inf, Ans_x, Ans_y;
  for (int y = 0; b * y <= S; y++) {
    int B = b * y, _S = S - B, Max = min(y, (_S - c * y) / a), x;
    x = GetMin((_S - B - 1) / a + 1, min(Max, B / a), a, c, _S);
    if (x != -1 && 2 * B - _S < Ans) {
      Ans = 2 * B - _S;
      Ans_x = x;
      Ans_y = y;
    }
    x = GetMax(0, min(Max, min(B, _S - B) / a), a, c, _S);
    if (x != -1 && _S - 2 * a * x < Ans) {
      Ans = _S - 2 * a * x;
      Ans_x = x;
      Ans_y = y;
    }
    x = GetMin((max(B, _S - B) - 1) / a + 1, Max, a, c, _S);
    if (x != -1 && 2 * a * x - _S < Ans) {
      Ans = 2 * a * x - _S;
      Ans_x = x;
      Ans_y = y;
    }
    x = GetMin((B - 1) / a + 1, min(Max, (_S - B) / a), a, c, _S);
    if (x != -1 && _S - 2 * B < Ans) {
      Ans = _S - 2 * B;
      Ans_x = x;
      Ans_y = y;
    }
  }
  if (Ans == inf)
    printf("-1\n");
  else
    printf("%d %d %d\n", Ans_x, Ans_y, (S - a * Ans_x - b * Ans_y) / c);
  return 0;
}
