#include <bits/stdc++.h>
using namespace std;
vector<int> lis, v;
multiset<int> m;
multiset<int>::iterator it;
int n;
int a[200200];
bool vis[200200];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int q;
  cin >> q;
  while (q--) {
    memset(vis, 0, sizeof vis);
    lis.clear();
    v.clear();
    m.clear();
    int i;
    string s;
    cin >> n;
    cin >> s;
    for (i = 0; i < n; i++) {
      a[i] = s[i] - '0';
      m.insert(a[i]);
    }
    it = m.begin();
    for (i = 0; i < n; i++) {
      if (a[i] <= *it) {
        lis.push_back(a[i]);
        vis[i] = 1;
        it++;
      }
    }
    for (i = 0; i < n; i++) {
      if (!vis[i]) v.push_back(a[i]);
    }
    bool b = 0;
    if (!v.empty() && v.size() > 1)
      for (i = 1; i < v.size(); i++) {
        if (v[i] < v[i - 1]) {
          cout << '-' << endl;
          b = 1;
          break;
        }
      }
    if (b) continue;
    for (i = 0; i < n; i++) {
      if (vis[i])
        cout << 1;
      else
        cout << 2;
    }
    cout << endl;
  }
}
