//#pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #include #include #include #include #include #include #include using namespace std; #define MZ(array) memset(array, 0, sizeof(array)) #define MF1(array) memset(array, -1, sizeof(array)) #define MINF(array) memset(array, 0x3f, sizeof(array)) #define REP(i,n) for(i=0;i<(n);i++) #define FOR(i,x,n) for(i=(x);i<=(n);i++) #define FORD(i,x,y) for(i=(x);i>=(y);i--) #define RD(x) scanf("%d",&x) #define RD2(x,y) scanf("%d%d",&x,&y) #define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z) #define WN(x) printf("%d\n",x); #define RE freopen("D.in","r",stdin) #define WE freopen("huzhi.txt","w",stdout) #define MP make_pair #define PB push_back #define PF push_front #define PPF pop_front #define PPB pop_back typedef long long LL; typedef unsigned long long ULL; const double PI=acos(-1.0); const double EPS=1e-10; const int MAXN=1000044; int n; map q; int main(){ int i; char s[55]; RD(n); REP(i,n){ scanf(" %s",s); int l = strlen(s); sort(s,s+l); string st = s; WN(q[st]); q[st]++; } return 0; }