#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100002;
int n, a[MAXN];
int t[4 * MAXN][60];
void build(int v, int l, int r) {
  if (l + 1 == r) {
    for (int i = (0); i < (60); i++) t[v][i] = (i % a[l]) ? 1 : 2;
    return;
  }
  int m = (l + r) / 2;
  build(2 * v, l, m);
  build(2 * v + 1, m, r);
  for (int i = (0); i < (60); i++)
    t[v][i] = t[2 * v][i] + t[2 * v + 1][(i + t[2 * v][i]) % 60];
}
void upd(int p, int v, int l, int r) {
  if (l + 1 == r) {
    for (int i = (0); i < (60); i++) t[v][i] = (i % a[l]) ? 1 : 2;
    return;
  }
  int m = (l + r) / 2;
  if (p < m)
    upd(p, 2 * v, l, m);
  else
    upd(p, 2 * v + 1, m, r);
  for (int i = (0); i < (60); i++) {
    t[v][i] = t[2 * v][i] + t[2 * v + 1][(i + t[2 * v][i]) % 60];
  }
}
int get(int i, int j, int v, int l, int r, int ct = 0) {
  if (i == l && j == r) return t[v][ct % 60];
  int m = (l + r) / 2;
  if (j <= m)
    return get(i, j, 2 * v, l, m, ct);
  else if (i >= m)
    return get(i, j, 2 * v + 1, m, r, ct);
  int t1 = get(i, m, 2 * v, l, m, ct);
  ct += t1;
  int t2 = get(m, j, 2 * v + 1, m, r, ct);
  return t1 + t2;
}
int main() {
  while (cin >> n) {
    for (int i = (0); i < (n); i++) cin >> a[i];
    build(1, 0, n);
    int q;
    cin >> q;
    while (q--) {
      char cmd;
      int x, y;
      cin >> cmd >> x >> y;
      if (cmd == 'A') {
        cout << get(x - 1, y - 1, 1, 0, n) << endl;
      } else {
        a[x - 1] = y;
        upd(x - 1, 1, 0, n);
      }
    }
  }
  return 0;
}
