#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
struct Ant
{
int pos;
char dir;
int rotations;
/* Ant(int pos, char dir)
{
this->pos = pos;
this->dir = dir;
}*/
};
int compareAnt(const void* a, const void* b)
{
return ((Ant*) a)->pos - ((Ant*) b)->pos;
}
int main()
{
int length, count;
while (true) {
if (scanf("%d %d\n", &length, &count) != 2) break;
Ant* ants = new Ant[100000];
int antLen = 0;
for (int i = 0; i < count; i++) {
scanf("%d %c\n", &ants[antLen].pos, &ants[antLen].dir);
ants[antLen].rotations = 0;
antLen++;
}
qsort(ants, antLen, sizeof(Ant), compareAnt);
int l = 0;
int r = 0;
for (int i = 0; i < antLen; i++) {
ants[i].rotations = r;
if (ants[i].dir == 'R') r++;
}
int minLR;
char minDir;
int maxRotations = 0;
for (int i = antLen - 1; i >= 0; i--) {
r = ants[i].rotations;
if (l < r) {
minLR = l;
minDir = 'L';
} else if (l > r) {
minLR = r;
minDir = 'R';
} else {
minLR = l;
minDir = '?';
}
ants[i].rotations = 2 * minLR + (int) (ants[i].dir == minDir);
maxRotations = max(maxRotations, ants[i].rotations);
if (ants[i].dir == 'L') l++;
}
int results[2];
int resultsCount = 0;
int maxDistance = 0;
int maxDistance2 = 0;
for (int i = 0; i < antLen; i++) {
// int dist = abs(ants[i].pos - length);
int dist;
if (ants[i].dir == 'L') {
dist = ants[i].pos;
} else {
dist = length - ants[i].pos;
}
maxDistance2 = max(maxDistance2, dist);
if (ants[i].rotations == maxRotations) {
if (dist > maxDistance) {
maxDistance = dist;
resultsCount = 0;
}
if (resultsCount < 2) {
results[resultsCount++] = ants[i].pos;
}
}
}
printf("The last ant will fall down in %d seconds - started at ", maxDistance2);
if (resultsCount == 2) {
printf("%d and %d.\n", results[0], results[1]);
} else {
printf("%d.\n", results[0]);
}
}
return 0;
}