#include <iostream>
using namespace std;
int B;
string Y;
int memo[100001];
int DP(int index) {
if(index >= Y.size()) return 1;
if(memo[index] != -1) return memo[index];
int digit = 0, ans = 0, next = index;
while(next < Y.size() && digit < B) {
digit = 10*digit + (Y[next++]-'0');
ans += DP(next);
}
return memo[index] = ans;
}
int main() {
cin >> B >> Y;
for(int i = 0; i < Y.size(); i++)
memo[i] = -1;
for(int i = 0; i < Y.size(); i++)
cout << DP(i) << " ";
cout << endl;
return 0;
}
/*
01234567
71112016
DP(X) = berapa banyak kemungkinan input untuk
string mulai index ke-X
DP(0) = seluruh string
DP(4) = untuk string "2016"
DP(7) = untuk string "6"
DP(8) = 1
71(1)12016
71(11)2016
DP(2) = DP("112016")
= DP(3)
+ DP(4)
*/
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IEI7CnN0cmluZyBZOwppbnQgbWVtb1sxMDAwMDFdOwoKaW50IERQKGludCBpbmRleCkgewoJaWYoaW5kZXggPj0gWS5zaXplKCkpIHJldHVybiAxOwoJaWYobWVtb1tpbmRleF0gIT0gLTEpIHJldHVybiBtZW1vW2luZGV4XTsKCWludCBkaWdpdCA9IDAsIGFucyA9IDAsIG5leHQgPSBpbmRleDsKCXdoaWxlKG5leHQgPCBZLnNpemUoKSAmJiBkaWdpdCA8IEIpIHsKCQlkaWdpdCA9IDEwKmRpZ2l0ICsgKFlbbmV4dCsrXS0nMCcpOwoJCWFucyArPSBEUChuZXh0KTsKCX0KCXJldHVybiBtZW1vW2luZGV4XSA9IGFuczsKfQoKaW50IG1haW4oKSB7CgljaW4gPj4gQiA+PiBZOwoJZm9yKGludCBpID0gMDsgaSA8IFkuc2l6ZSgpOyBpKyspCgkJbWVtb1tpXSA9IC0xOwoJZm9yKGludCBpID0gMDsgaSA8IFkuc2l6ZSgpOyBpKyspCgkJY291dCA8PCBEUChpKSA8PCAiICI7Cgljb3V0IDw8IGVuZGw7CglyZXR1cm4gMDsKfQovKgowMTIzNDU2Nwo3MTExMjAxNgoKRFAoWCkgPSBiZXJhcGEgYmFueWFrIGtlbXVuZ2tpbmFuIGlucHV0IHVudHVrCiAgICAgICAgc3RyaW5nIG11bGFpIGluZGV4IGtlLVgKICAgICAgICAKRFAoMCkgPSBzZWx1cnVoIHN0cmluZwpEUCg0KSA9IHVudHVrIHN0cmluZyAiMjAxNiIKRFAoNykgPSB1bnR1ayBzdHJpbmcgIjYiCkRQKDgpID0gMQoKNzEoMSkxMjAxNgo3MSgxMSkyMDE2CgpEUCgyKSA9IERQKCIxMTIwMTYiKQo9IERQKDMpCisgRFAoNCkKCiov