#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  cin >> t;
  while (t--) {
    string s;
    cin >> s;
    int n = (int)s.size();
    vector<vector<int>> l(3);
    for (int i = 0; i < n; i++) {
      if ((int)s[i] <= 57)
        l[0].push_back(i);
      else if ((int)s[i] <= 90)
        l[1].push_back(i);
      else
        l[2].push_back(i);
    }
    if (((int)l[0].size()) && ((int)l[1].size()) && ((int)l[2].size()))
      cout << s << endl;
    else {
      for (int i = 0; i < 3; i++) {
        if (!(int)l[(i + 0) % 3].size()) {
          if (l[(i + 1) % 3].size() < l[(i + 2) % 3].size()) {
            int k = l[(i + 2) % 3].size();
            l[(i + 2) % 3].pop_back();
            s[l[(int)(i + 2) % 3][k - 1]] = (((i + 0) % 3 == 0)   ? '0'
                                             : ((i + 0) % 3 == 1) ? 'A'
                                                                  : 'a');
            int h = l[(int)(i + 2) % 3][k - 1];
            if ((int)s[h] <= 57)
              l[0].push_back(h);
            else if ((int)s[h] <= 90)
              l[1].push_back(h);
            else
              l[2].push_back(h);
          } else {
            int k = l[(i + 1) % 3].size();
            l[(i + 1) % 3].pop_back();
            s[l[(int)(i + 1) % 3][k - 1]] = (((i + 0) % 3 == 0)   ? '0'
                                             : ((i + 0) % 3 == 1) ? 'A'
                                                                  : 'a');
            int h = l[(int)(i + 1) % 3][k - 1];
            if ((int)s[h] <= 57)
              l[0].push_back(h);
            else if ((int)s[h] <= 90)
              l[1].push_back(h);
            else
              l[2].push_back(h);
          }
          break;
        }
      }
      if (((int)l[0].size()) && ((int)l[1].size()) && ((int)l[2].size())) {
        cout << s << endl;
        continue;
      }
      for (int i = 0; i < 3; i++) {
        if (!(int)l[(i + 0) % 3].size()) {
          if (l[(i + 1) % 3].size() < l[(i + 2) % 3].size()) {
            int k = l[(i + 2) % 3].size();
            l[(i + 2) % 3].pop_back();
            s[l[(int)(i + 2) % 3][k - 1]] = (((i + 0) % 3 == 0)   ? '0'
                                             : ((i + 0) % 3 == 1) ? 'A'
                                                                  : 'a');
          } else {
            int k = l[(i + 1) % 3].size();
            l[(i + 1) % 3].pop_back();
            s[l[(int)(i + 1) % 3][k - 1]] = (((i + 0) % 3 == 0)   ? '0'
                                             : ((i + 0) % 3 == 1) ? 'A'
                                                                  : 'a');
          }
          break;
        }
      }
      cout << s << endl;
    }
  }
}
