#include <bits/stdc++.h>
using namespace std;
const long long int mod = 1000000000 + 7;
const long long int N = 1000000 + 6;
void inp(long long int *arr, long long int n) {
  for (int i = 0; i < n; i++) cin >> arr[i];
}
void inp_mat(long long int *arr, long long int n, long long int m) {
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      long long int x;
      cin >> x;
      *((arr + i * m) + j) = x;
    }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  cin >> t;
  while (t--) {
    string s;
    cin >> s;
    int m;
    cin >> m;
    int b[m];
    for (int i = 0; i < m; i++) cin >> b[i];
    int n = (int)((s).size());
    int arr[26];
    memset(arr, 0, sizeof(arr));
    for (int i = 0; i < n; i++) {
      arr[s[i] - 'a']++;
    }
    char t[m];
    for (int i = 0; i < m; i++) t[i] = ' ';
    for (char c = 'z'; c >= 'a'; c--) {
      int cc = 0;
      vector<int> v;
      for (int j = 0; j < m; j++)
        if (b[j] == 0) {
          cc++;
          v.push_back(j);
        }
      if (arr[c - 'a'] >= cc) {
        for (int ii = 0; ii < (int)((v).size()); ii++) t[v[ii]] = c;
        for (int ii = 0; ii < (int)((v).size()); ii++) {
          b[v[ii]] = -1;
          for (int j = 0; j < m; j++) {
            b[j] -= abs(j - v[ii]);
          }
        }
      }
    }
    for (int i = 0; i < m; i++) cout << t[i];
    cout << '\n';
  }
}
