#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long int lcm(long long int a, long long int b) {
  return a / gcd(a, b) * b;
}
const int maxn = 2e6;
string str;
vector<int> pd;
vector<int> pr;
int main() {
  int n;
  cin >> n;
  cin >> str;
  int nd = 0, nr = 0;
  bool flag = 1;
  for (int i = 0; i < str.size(); i++) {
    if (str[i] == 'D') {
      nd++;
      pd.push_back(i);
    } else if (str[i] == 'R') {
      nr++;
      pr.push_back(i);
    }
  }
  int i = 0, j = 0;
  while (nd && nr) {
    if (str[i] == 'D') {
      nr--;
      bool flag = 0;
      int pos = upper_bound(pr.begin(), pr.end(), i) - pr.begin();
      if (pos == pr.size()) {
        if (!flag) {
          if (!pr.empty()) {
            str[pr[0]] = '.';
            pr.erase(pr.begin() + 0);
            flag = 1;
          }
        }
      } else {
        str[pr[pos]] = '.';
        pr.erase(pr.begin() + pos);
      }
    } else if (str[i] == 'R') {
      nd--;
      bool flag = 0;
      int pos = upper_bound(pd.begin(), pd.end(), i) - pd.begin();
      if (pos == pd.size()) {
        if (!flag) {
          if (!pd.empty()) {
            str[pd[0]] = '.';
            pd.erase(pd.begin() + 0);
            flag = 1;
          }
        }
      } else {
        str[pd[pos]] = '.';
        pd.erase(pd.begin() + pos);
      }
    }
    i++;
    i %= n;
  }
  if (nd)
    cout << "D" << endl;
  else
    cout << "R" << endl;
  return 0;
}
