Runtime Error in Appending String (Spoj)

import java.util.Scanner ;
import java.io.* ;

public class Main{
static StringBuffer sb = new StringBuffer();
static int perform(Integer t , int count , StringBuffer s  ){
    if(count==t) return 1 ;
    sb.append(s) ;
    return  perform(t , count+1 , s) ;



}
static int solve(String[] s , int index){
  if(index==s.length) return 1 ;
    try {
        Integer t = Integer.parseInt(s[index]) ;
        //System.out.println(t) ;
       perform(t ,1 , new StringBuffer(sb) );
       return  solve(s , index+1);
    }catch (Exception e){
        sb.append(s[index]) ;
        return solve(s , index+1);
    }
}
public static void main(String[] args) throws  IOException {
    
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    br.readLine() ; 
    int t = Integer.parseInt(br.readLine());
    while(t-->0){
        br.readLine() ;
        String[] s = br.readLine().split("");
        solve(s , 0) ;
        br.readLine() ; 
        int n = Integer.parseInt(br.readLine()) ;
        for(int i = 0 ; i < n ; ++i){
             br.readLine() ;
            int index = Integer.parseInt(br.readLine());
            
            //System.out.println() ; 
            if(index <= s.length)
            System.out.println(sb.charAt(index - 1)) ;
            else
            System.out.println("-1" );
        }
    }
}
}