#include <bits/stdc++.h>
constexpr int INF = 2147483647;
constexpr long long int INF_LL = 9223372036854775807;
constexpr int MOD = 1000000007;
using namespace std;
int main(int argc, char *argv[]) {
  long long int N, Q;
  cin >> N >> Q;
  string s;
  cin >> s;
  vector<char> t(Q), d(Q);
  for (int i = 0; i < Q; i++) cin >> t[i] >> d[i];
  int posL_r = N - 1, posL_l = 0;
  for (int i = 0; i < 1000; i++) {
    int tmp = posL_l + (posL_r - posL_l) / 2;
    for (int j = 0; j < Q; j++) {
      if (tmp < 0 || tmp >= N) break;
      if (s[tmp] == t[j]) {
        if (d[j] == 'R')
          tmp++;
        else
          tmp--;
      }
    }
    if (tmp < 0) {
      posL_l = posL_l + (posL_r - posL_l) / 2 + 1;
    } else {
      posL_r = posL_l + (posL_r - posL_l) / 2 - 1;
    }
  }
  int posR_r = N - 1, posR_l = 0;
  for (int i = 0; i < 1000; i++) {
    int tmp = posR_l + (posR_r - posR_l) / 2;
    for (int j = 0; j < Q; j++) {
      if (tmp < 0 || tmp >= N) break;
      if (s[tmp] == t[j]) {
        if (d[j] == 'R')
          tmp++;
        else
          tmp--;
      }
    }
    if (tmp >= N) {
      posR_r = posR_l + (posR_r - posR_l) / 2 - 1;
    } else {
      posR_l = posR_l + (posR_r - posR_l) / 2 + 1;
    }
  }
  cout << posR_r << " " << posL_l << endl;
  cout << posR_r - posL_l + 1 << endl;
  return 0;
}
