#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
constexpr int INF = 114514;
int f[1010],rks[1010];
bool flag[1010];
int contests[1010][1010];
int find(int x){
return f[x] == x ? x : f[x] = find(f[x]);
}
void merge(int x,int y){
f[find(y)] = find(x);
rks[y] = rks[x];
rks[x] ++;
}
int main(){
cin.tie(nullptr),cout.tie(nullptr);
int n,m;
cin >> n >> m;
for(int i = 1;i <= n;i ++){
f[i] = i;
rks[i] = 1;
}
for(int i = 1;i <= m;i ++){
int u,v;
char c;
cin >> u >> v >> c;
if(c == 'T'){
merge(u,v);
}else{
flag[v] = true;
}
}
int minidx = INF,minid = INF;
for(int i = 1;i <= n;i ++){
contests[f[i]][rks[i]] = i;
if(!flag[i]){
if(rks[i] < minidx){
minidx = rks[i];
minid = i;
}
}
}
if(minid == INF){
cout << "NIE";
return 0;
}
for(int i = 1;i <= n;i ++){
if(!contests[f[i]][rks[i] - 1] && i != minid){
cout << minid << endl;
}
else cout << contests[f[i]][rks[i] - 1] << endl;
}
return 0;
}