Smallest KMP

Please tell me what is the problem in code. It’s giving right answers then also not passing test cases : (

     import java.util.*;
     class anagramCodechef{
     public static void main(String[] args){
	
	Scanner sc=new Scanner(System.in);
	int T = sc.nextInt();
	
	for(int t=0; t<T; t++){
	String s = sc.next();
	String p = sc.next();
	int l = s.length();
	int indx;
	
	char[] arr = s.toCharArray();
	Arrays.sort(arr);
	
	for(int j=0; j<p.length(); j++){
		
	    if(p.charAt(j) == arr[l-1])
			l--;
		else{
	      for(int i=0; i<l-1; i++){
	        
			if(p.charAt(j) == arr[i]){
				
				for(int k=i+1; k<l; k++){
					arr[k-1] = arr[k];
				}
				l--;
				break;
		    }
		 }
	   }
	}
	for(indx=0; indx<l; indx++)
	   if(p.charAt(0) < arr[indx])
		   break;
	s = String.valueOf(arr);
    StringBuffer sb = new StringBuffer(s);
	sb.setLength(l);
    sb.insert(indx, p);
    System.out.println(sb.toString()); 		
	
	}
}
}