#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e6+10;
int n;
struct Node
{
int v;
int prev,nextv;
}node[MAXN];
bool dfs(int left,int right)
{
for(int l=left,r=right;r>=l;l++,r--)
{
if(node[l].prev<left&&node[l].nextv>right)
return dfs(left,l-1)&&dfs(l+1,right);
if(node[r].prev<left&&node[r].nextv>right)
return dfs(left,r-1)&&dfs(r+1,right);
}
return left>=right;
}
int main()
{
if (fopen("in.txt", "r") != NULL)
{
freopen("in.txt", "r", stdin);
}
int t;
cin>>t;
while(t--)
{
map<int,int> mp;
cin>>n;
int cnt=0;
for(int i=1;i<=n;i++)
{
int v;
cin>>v;
if(mp.count(v)==0)
mp[v]=cnt++;
v=mp[v];
node[i]={v,0,n+1};
}
int vis[cnt]={0};
for(int i=1;i<=n;i++)
{
node[i].prev=vis[node[i].v];
vis[node[i].v]=i;
}
fill(vis,vis+cnt,n+1);
for(int i=n;i>=1;i--)
{
node[i].nextv=vis[node[i].v];
vis[node[i].v]=i;
}
cout<<(dfs(1,n)?"non-boring":"boring")<<'\n';
}
return 0;
}