#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define print1(x) cout<<x<<endl
#define print2(x,y) cout<<x<<" "<<y<<endl
#define print3(x,y,z) cout<<x<<" "<<y<<" "<<z<<endl
#define FOR(i,start,end,increment) for(i=start;i<end;i=i+increment)
#define print_arr(a) for(auto iter:a) cout<<iter<<" "
#define print_arr2(a,n) for(ll iter = 0;iter<n;iter++) cout<<a[iter]<<" "
#define ENDL cout<<endl
#define mii map<int,int>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define vi vector<int>
#define vl vector<ll>
#define graph vector<vector<ll> >
#define vpll vector<pair<ll,ll> >
int main()
{
string s,s2 = "";
cin>>s;
int a[26];
int n = s.length();
for(int i=n-1;i>=0;i--)
{
int n2;
if(s[i]=='#')
{
n2=int(s[i-2]-'0');
n2 = n2*10 - 1 + int(s[i-1]-'0')+int('a');
s2 = char(n2) + s2;
i=i-2;
}
else
s2 = s[i]+s2;
}
s = s2;
s2 = "";
memset(a,0,sizeof(a));
n = s.length();
for(int i=0;i<n;i++)
{
int n2=0;
if(s[i]>='1' && s[i]<='9')
a[s[i]-'0'-1]++;
if(s[i]>='j' && s[i]<='z')
a[s[i]-'a']++;
if(s[i]=='(')
{
char c = s[i-1];
i++;
while(s[i]!=')')
{
n2 = n2*10;
n2 += int(s[i]-'0');
i++;
}
if(c>='1' && c<='9')
a[c-'0'-1]+=n2-1;
if(c>='j' && c<='z')
a[c-'a']+=n2-1;
}
}
for(int i=0;i<26;i++)
cout<<a[i]<<" ";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZQlsbCAJCQkJCQkJCWxvbmcgbG9uZwojZGVmaW5lCXVsbAkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUJcHJpbnQxKHgpIAkJCQkJCWNvdXQ8PHg8PGVuZGwKI2RlZmluZQlwcmludDIoeCx5KSAJCQkJCWNvdXQ8PHg8PCIgIjw8eTw8ZW5kbAojZGVmaW5lCXByaW50Myh4LHkseikgCQkJCQljb3V0PDx4PDwiICI8PHk8PCIgIjw8ejw8ZW5kbAojZGVmaW5lCUZPUihpLHN0YXJ0LGVuZCxpbmNyZW1lbnQpIAkJZm9yKGk9c3RhcnQ7aTxlbmQ7aT1pK2luY3JlbWVudCkKI2RlZmluZQlwcmludF9hcnIoYSkgZm9yKGF1dG8gaXRlcjphKSAJY291dDw8aXRlcjw8IiAiCiNkZWZpbmUJcHJpbnRfYXJyMihhLG4pIAkJCQlmb3IobGwgaXRlciA9IDA7aXRlcjxuO2l0ZXIrKykgY291dDw8YVtpdGVyXTw8IiAiCiNkZWZpbmUJRU5ETCAJCQkJCQkJY291dDw8ZW5kbAojZGVmaW5lCW1paQkJCQkJCQkJbWFwPGludCxpbnQ+CiNkZWZpbmUJcGlpCQkJCQkJCQlwYWlyPGludCxpbnQ+CiNkZWZpbmUJcGxsCQkJCQkJCQlwYWlyPGxsLGxsPgojZGVmaW5lCXZpCQkJCQkJCQl2ZWN0b3I8aW50PgojZGVmaW5lCXZsCQkJCQkJCQl2ZWN0b3I8bGw+CiNkZWZpbmUJZ3JhcGgJCQkJCQkJdmVjdG9yPHZlY3RvcjxsbD4gPgojZGVmaW5lIHZwbGwJCQkJCQkJdmVjdG9yPHBhaXI8bGwsbGw+ID4KCgppbnQgbWFpbigpCnsKCXN0cmluZyBzLHMyID0gIiI7CgljaW4+PnM7CglpbnQgYVsyNl07CglpbnQgbiA9IHMubGVuZ3RoKCk7Cglmb3IoaW50IGk9bi0xO2k+PTA7aS0tKQoJewoJCWludCBuMjsKCQlpZihzW2ldPT0nIycpCgkJewoJCQluMj1pbnQoc1tpLTJdLScwJyk7CgkJCW4yID0gbjIqMTAgLSAxICsgaW50KHNbaS0xXS0nMCcpK2ludCgnYScpOwoJCQlzMiA9IGNoYXIobjIpICsgczI7CgkJCWk9aS0yOwoJCX0KCQllbHNlCgkJczIgPSBzW2ldK3MyOwoJCQoJfQoJCgkKCXMgPSBzMjsKCXMyID0gIiI7CgltZW1zZXQoYSwwLHNpemVvZihhKSk7CgluID0gcy5sZW5ndGgoKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJaW50IG4yPTA7CgkJCgkJaWYoc1tpXT49JzEnICYmIHNbaV08PSc5JykKCQlhW3NbaV0tJzAnLTFdKys7CgkJaWYoc1tpXT49J2onICYmIHNbaV08PSd6JykKCQlhW3NbaV0tJ2EnXSsrOwoJCQoJCWlmKHNbaV09PScoJykKCQl7CgkJCWNoYXIgYyA9IHNbaS0xXTsKCQkJaSsrOwoJCQl3aGlsZShzW2ldIT0nKScpCgkJCXsKCQkJCW4yID0gbjIqMTA7CgkJCQluMiArPSBpbnQoc1tpXS0nMCcpOwoJCQkJaSsrOwoJCQl9CgkJCWlmKGM+PScxJyAmJiBjPD0nOScpCgkJCWFbYy0nMCctMV0rPW4yLTE7CgkJCWlmKGM+PSdqJyAmJiBjPD0neicpCgkJCWFbYy0nYSddKz1uMi0xOwoJCX0KCQkKCX0KCQoJZm9yKGludCBpPTA7aTwyNjtpKyspCgljb3V0PDxhW2ldPDwiICI7CgkKCQp9