#include <bits/stdc++.h>
using namespace std;
ifstream fin ("zaharel.in");
ofstream fout ("zaharel.out");
vector< pair<int,int> > v;
int x, y, X, Y, n, m, i, L[1005], C[1005], j;
bool viz[1005][ 1005];
char c;
int main()
{
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y>>c;
if(c=='R') {L[x] = y, X = x, Y = y;}
else C[y] = x;
}
x=X; y=Y; c='R';
while(1)
{
v.push_back({x,y});
if(c == 'R')
{
x=C[y];c='A';
}
else
{
y=L[x];c= 'R';
}
if(viz[x][y]) break;
viz[x][y] = 1;
}
for(i=0; v[i] != make_pair(x, y); i++);
fout<<(v.size()-i)/2 << '\n';
int primrosu=i;
if(i%2==1) primrosu++;
for(j=primrosu; j<v.size(); j+=2)
fout << v[j].first << ' ' << v[j].second << ' ';
fout << '\n';
for(j=primrosu-i%2; j<v.size(); j+=2)
fout << v[j].first << ' ' << v[j].second << ' ';
return 0;
}