        // violet apricity
// Do all I can do.Do good to be good.

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<math.h>
#include<map>
#include<sstream>
#include<queue>
#include<stack>
#include<iomanip>
#include<set>

#define STD using namespace std;
#define ll long long
#define db double
#define ldb long double
#define IOS std::ios::sync_with_stdio(false),std::cin.tie(0),std::cout.tie(0);
#define IS std::ios::sync_with_stdio(false),std::cin.tie(0);
#define MAX 88888888
#define INF 0x3f3f3f3f
#define r0 return 0;
#define SYP system("pause");
#define endl '\n'
using namespace std;
char a[1005];
map<string,ll>q;
ll n;
string ans;
void bfs()
{
    queue<string>qq;
    string b;
    qq.push(b);
    ll flag=1;
    while(1)
    {
        string now=qq.front();
        qq.pop();
        if(q[now]==0&&flag!=1)
        {
            ans=now;
            return ;
        }
        for(int x=0;x<=25;x++)
        {
            char xx=x+'a';
            string xxx=now;
            xxx.push_back(xx);
            qq.push(xxx);
        }
        flag=0;
    }
    return ;
}
int main()
{
    ll t;cin>>t;
    while(t--)
    {
        ll n;cin>>n;
        scanf("%s",a+1);
        for(int i=1;i<=n;i++)
        {
            string nh;
            for(int j=i;j<=n;j++)
            {
                nh.push_back(a[j]);
                q[nh]++;
            }
        }
        bfs();
        cout<<ans<<endl;
        for(int i=1;i<=n;i++)
        {
            string nh;
            for(int j=i;j<=n;j++)
            {
                nh.push_back(a[j]);
                q[nh]--;
            }
        }
    }
    return 0;
}





















