#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
void swap(int &a,int &b);
void Next(int a[],int n,int stt);
void Result(int a[],int n,int stt);
void process(char xau[],int stt){
	int n=strlen(xau);
	int a[80];
	for(int i=0;i<n;i++){
		switch(xau[i]){
			case '1':a[i]=1;break;
			case '2':a[i]=2;break;
			case '3':a[i]=3;break;
			case '4':a[i]=4;break;
			case '5':a[i]=5;break;
			case '6':a[i]=6;break;
			case '7':a[i]=7;break;
			case '8':a[i]=8;break;
			case '9':a[i]=9;break;
			case '0':a[i]=0;break;
		}
	}
	int dem=0;
	for(int i=0;i<n-1;i++){
		if (a[i]>=a[i+1]) dem++;
	}
	if(dem!=n-1)
		Next(a,n,stt);
	else {
		cout<<stt<<" BIGGEST"<<endl;
	}
}
void swap(int &a,int &b){
	int tg=a;
	a=b;
	b=tg;
}
void Result(int a[],int n,int stt){
	cout<<stt<<" ";
	for(int i=0;i<n;i++){
		cout<<a[i];
	}
	cout<<endl;
}
void Next(int a[],int n,int stt){
	int j,k,r,s;	
	j=n-1;
	while(a[j]<=a[j-1])	{
		j--;
	}
		k=n-1;
		while(a[k]<a[j-1]){
			k--;
			break;
		}
		swap(a[j-1],a[k]);
		 r=j;
		s=n-1;
		while(r<s){
			swap(a[r],a[s]);
			r++;
			s--;
		}
		Result(a,n,stt);
}
int main(){
	char a[80];
	int n,stt;
	cin>>n;
	
	while(n--){
		cin>>stt;
		cin.ignore();
		cin.getline(a,100);		
		process(a,stt);
	}
	return 0;
}