#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int inf = 0x3f3f3f3f; const int N = 1000004 + 10; const int M = 40 + 10; char name[M]; map n2t; unsigned long long SEED = 133331; int main() { #ifdef LOCAL freopen("in", "r", stdin); #endif int n; while(~scanf("%d", &n)) { n2t.clear(); for(int i = 0; i < n; ++i) { scanf("%s", &name); int len = strlen(name); sort(name, name+len); unsigned long long tmp = 0; for(int j = 0; j < len; ++j) { tmp = tmp * SEED + name[j]; } printf("%d\n", n2t[tmp]++); } } return 0; }