#include <bits/stdc++.h>
using namespace std;
void bwayne() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
bool safe(vector<string> &a, long long i, long long j) {
  long long n = a.size();
  if (i + 1 < n && i - 1 >= 0 && j + 1 < n && j - 1 >= 0) {
    if (a[i][j] == '.' && a[i][j - 1] == '.' && a[i][j + 1] == '.' &&
        a[i - 1][j] == '.' && a[i + 1][j] == '.') {
      return true;
    }
  }
  return false;
}
bool fill(vector<string> &a, long long i, long long j) {
  long long n = a.size();
  a[i - 1][j] = '#';
  a[i + 1][j] = '#';
  a[i][j - 1] = '#';
  a[i][j + 1] = '#';
  a[i][j] = '#';
}
void solve() {
  long long a, b, p;
  cin >> a >> b >> p;
  string s;
  cin >> s;
  long long n = s.size();
  long long dp[n];
  dp[0] = 0;
  long long ans = n;
  for (long long i = n - 1; i > 0;) {
    if (i >= 1 && s[i - 1] == 'B') {
      if (p >= b) {
        i--;
        while (i >= 0 && s[i] == 'B') {
          i--;
        }
        i++;
      } else
        break;
      p -= b;
      ans = min(ans, i + 1);
    }
    if (i >= 1 && s[i - 1] == 'A') {
      if (p >= a) {
        i--;
        while (i >= 0 && s[i] == 'A') {
          i--;
        }
        i++;
      } else
        break;
      p -= a;
      ans = min(ans, i + 1);
    }
  }
  cout << ans << endl;
}
int32_t main() {
  long long t;
  cin >> t;
  for (long long tt = 1; tt <= t; tt++) {
    solve();
  }
  return 0;
}
