#include <stdio.h>
void swap(int* a, int* b) { int c = *a; *a = *b; *b = c; }

int main(void) {
	int n, l;
	int tunnel_l[101], tunnel_r[101]; /* トンネルの状態 */
	int t, lastant;
	int i;

	/* データセット毎の処理 */
	while (scanf("%d%d", &n, &l) == 2 && n >= 1 && n <= 20 && l >= n + 1 && l <= 100) {
		/* 初期化する */
		for (i = 0; i < l + 1; i++) {
			tunnel_l[i] = 0;
			tunnel_r[i] = 0;
		}
		t = 0;

		/* アリを読み込む */
		for (i = 1; i <= n; i++) {
			char d; int p;
			scanf("%1s%d", &d, &p);
			if (d == 'L') tunnel_l[p] = i; /* 左向きのアリを入れる配列 */
			else if (d == 'R') tunnel_r[p] = i; /* 右向きのアリを入れる配列 */
		}

		/* アリの動きをシミュレートする */
		int f = 1;
		while (f) {
			t++;
			/* アリを歩かせる */
			for (i = 0; i <= l - 1; i++) {
				tunnel_l[i] = tunnel_l[i+1];
				tunnel_r[l-i] = tunnel_r[l-i-1];
			}
			/* 衝突を判定する */
			for (i = 1; i <= l - 1; i++) {
				if (tunnel_l[i] && tunnel_r[i]) swap(tunnel_l + i, tunnel_r + i); /* 衝突した2匹の向きを変える */
			}

			/* 全てのアリがトンネルを出たか調べる */
			f = 0;
			for (i = 1; i <= l - 1; i++) {
				if (tunnel_l[i] || tunnel_r[i]) {
					f = 1; /* トンネルにアリがいる */
					break;
				}
			}
			if (f == 0) {
				/* シミュレーション終了 */
				if (tunnel_l[0]) lastant = tunnel_l[0];
				else lastant = tunnel_r[l];
			}
		}

		printf("%d %d\n", t, lastant);
	}
	return 0;
}