#include<bits/stdc++.h>
using namespace std;
int n,m,cnt=0;
map<int,int>mp;
int fa[21000];
int l,r;
string op;
int find(int x){
if(fa[x]!=x)fa[x]=find(fa[x]);
return fa[x];
}
void merge(int x,int y){
fa[find(x)]=find(y);
}
int main(){
cin>>n>>m;
for(int i=1;i<=4*m+2;i++)fa[i]=i;
for(int i=1;i<=m;i++){
cin>>l>>r>>op;
if(!mp.count(l))mp[l]=++cnt;
if(!mp.count(r))mp[r]=++cnt;
if(op=="odd"){
if(find(mp[l]-1)==find(mp[r])){
cout<<i-1;
return 0;
}
else{
merge(mp[l]-1,mp[r]+2*m+1);
merge(mp[l]-1+2*m+1,mp[r]);
}
}
else{
if(find(mp[l]-1)==find(mp[r]+2*m+1)){
cout<<i-1;
return 0;
}
else{
merge(mp[l]-1,mp[r]);
merge(mp[l]-1+2*m+1,mp[r]+2*m+1);
}
}
}
cout<<m;
return 0;
}
WA#6 #9 #10