#include <bits/stdc++.h>
using namespace std;
char s1[2010], s2[555];
int len1, len2;
int dp[2010][2010];
int pre[2010];
int main() {
  scanf("%s%s", s1 + 1, s2 + 1);
  len1 = strlen(s1 + 1);
  len2 = strlen(s2 + 1);
  memset(pre, 0, sizeof(pre));
  for (int i = len2; i <= len1; i++) {
    int now = len2;
    for (int j = i; j >= 1; j--)
      if (s1[j] == s2[now]) {
        now--;
        if (now == 0) {
          pre[i] = j;
          break;
        }
      }
  }
  for (int i = 0; i <= len1; i++)
    for (int j = 0; j <= len1; j++)
      if (j <= i)
        dp[i][j] = 0;
      else
        dp[i][j] = -99999999;
  for (int i = 1; i <= len1; i++) {
    if (pre[i] == 0) continue;
    for (int j = 0; j <= i; j++) {
      int res = i - pre[i] + 1 - len2;
      dp[i][j] = max(dp[i][j], dp[i - 1][j]);
      if (j > 0) dp[i][j] = max(dp[i][j], dp[i - 1][j - 1]);
      if (j >= res) dp[i][j] = max(dp[i][j], dp[pre[i] - 1][j - res] + 1);
    }
  }
  for (int i = 0; i <= len1; i++) {
    if (i == len1)
      printf("%d\n", dp[len1][i]);
    else
      printf("%d ", dp[len1][i]);
  }
  return 0;
}
