#include <bits/stdc++.h>
using namespace std;
ifstream in;
ofstream out;
const long long kk = 1000;
const long long ml = kk * kk;
const long long mod = ml * kk + 7;
const long long inf = ml * ml * ml + 7;
long long n, i, j, ans;
vector<long long> m;
bool viv = false;
set<long long> s, b, r;
void add(long long v) {
  if ((*s.begin()) < v) {
    s.insert(v);
    return;
  }
  if ((*b.rbegin()) > v) {
    b.insert(v);
    return;
  }
  r.insert(v);
  return;
}
void take(long long v) {
  if (*s.begin() == v) {
    s.erase(v);
    for (auto i : r) b.insert(i);
    r.clear();
    return;
  }
  if (*b.rbegin() == v) {
    b.erase(v);
    for (auto i : r) s.insert(i);
    r.clear();
    return;
  }
  if ((b.find(v) != b.end()) || (s.find(v) != s.end())) {
    cout << 0;
    exit(0);
  }
  r.erase(v);
  ans *= 2;
  ans %= mod;
  for (auto i : r)
    if (i < v)
      b.insert(i);
    else
      s.insert(i);
  r.clear();
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  ans = 1;
  s.insert(mod * 10);
  b.insert(-1);
  for (i = 0; i < n; i++) {
    string s;
    long long a;
    cin >> s >> a;
    if (s[1] == 'D')
      add(a);
    else
      take(a);
  }
  ans *= ((long long)r.size() + 1);
  ans %= mod;
  cout << ans << endl;
  return 0;
}
