description: In Berland, n different types of banknotes are used. Banknotes of the i-th type have denomination 10^{a_i} burles (burles are the currency used in Berland); the denomination of banknotes of the first type is exactly 1.
  
  Let's denote f(s) as the minimum number of banknotes required to represent exactly s burles. For example, if the denominations of banknotes used in Berland are 1, 10 and 100, then f(59) = 14: 9 banknotes with denomination of 1 burle and 5 banknotes with denomination of 10 burles can be used to represent exactly 9 ⋅ 1 + 5 ⋅ 10 = 59 burles, and there's no way to do it with fewer banknotes.
  
  For a given integer k, find the minimum positive number of burles s that cannot be represented with k or fewer banknotes (that is, f(s) > k).
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^4) — number of test cases.
  
  The first line of each test case contains two integers n and k (1 ≤ n ≤ 10; 1 ≤ k ≤ 10^9).
  
  The next line contains n integers a_1, a_2, ..., a_n (0 = a_1 < a_2 < ... < a_n ≤ 9).
  
  Output
  
  For each test case, print one integer — the minimum positive number of burles s that cannot be represented with k or fewer banknotes.
  
  Example
  
  Input
  
  
  4
  3 13
  0 1 2
  2 777
  0 4
  3 255
  0 1 3
  10 1000000000
  0 1 2 3 4 5 6 7 8 9
  
  
  Output
  
  
  59
  778
  148999
  999999920999999999
solution: import java.util.*;
  import java.io.*;
  import java.math.*;
  
  public class Coder {
  
    static StringBuffer str=new StringBuffer();
    static int n;
    static long k;
    static long a[];
  
    /*
      Idea i got: Maximize the smaller number of bank notes so that we can minimize s and also 
      at the same time, we can maximize the f(s)
  
      Idea i lost which will lead to the solution(confused me a lot):
      The key idea: We can take as many i coins until it does not exceed (i+1)th coin denomination
    */
    static void solve(){
      long ans=0;
      for(int i=0;i<n;i++){
        if(k < 0) break;
        long num=k+1;
        if(i!=n-1){
          num=Math.min(num, a[i+1]/a[i] - 1);
        }
        k-=num;
        ans+=num*a[i];
      }
      str.append(ans).append("\n");
    }
  
    public static void main(String[] args) throws java.lang.Exception {
      BufferedReader bf;
      PrintWriter pw;
      boolean lenv=false;
      if(lenv){
        bf = new BufferedReader(
                            new FileReader("input.txt"));
        pw=new PrintWriter(new
              BufferedWriter(new FileWriter("output.txt")));
      }else{
        bf = new BufferedReader(new InputStreamReader(System.in));
        pw = new PrintWriter(new OutputStreamWriter(System.out));
      }
      int q = Integer.parseInt(bf.readLine().trim());
      while (q-- > 0) {
        String s[]=bf.readLine().trim().split("\\s+");
        n=Integer.parseInt(s[0]);
        k=Long.parseLong(s[1]);
        a=new long[n];
        s=bf.readLine().trim().split("\\s+");
        for(int i=0;i<n;i++) a[i]=(long)Math.pow(10, Long.parseLong(s[i]));
        solve();
      }
      pw.print(str);
      pw.flush();
      // System.out.print(str);
    }
  }