#include <bits/stdc++.h>
using namespace std;
const int maxl = 2050, maxp = 550;
char s[maxl], p[maxl];
int ls, lp, ans[maxl];
int f[maxl][maxl];
int match(int x) {
  int i, j;
  for (i = x, j = 0; i < ls && j < lp; i++, j++)
    while (i < ls && s[i] != p[j]) i++;
  return j < lp ? 0 : i;
}
int main() {
  int i, j, to;
  scanf("%s%s", s, p);
  ls = strlen(s);
  lp = strlen(p);
  for (i = 0; i < ls; i++) {
    if ((to = match(i))) {
      int t = to - i - lp;
      for (j = 0; j <= i; j++) f[to][j + t] = max(f[to][j + t], f[i][j] + 1);
    }
    for (j = 0; j <= i; j++) f[i + 1][j] = max(f[i + 1][j], f[i][j]);
  }
  ans[0] = f[ls][0];
  for (i = 1; i <= ls && f[ls][i] >= f[ls][i - 1]; i++) ans[i] = f[ls][i];
  for (j = ls - i - ans[i - 1] * lp; i <= ls && j >= 0; i++, j--)
    ans[i] = ans[i - 1];
  for (j = ans[i - 1] * lp - 1; j >= 0; i++, j--) ans[i] = j / lp;
  for (i = 0; i <= ls; i++) printf("%d%c", ans[i], i < ls ? ' ' : '\n');
  return 0;
}
