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 sys
  import math
  
  
  #def get_ints(): 
  #  return map(int, sys.stdin.readline().strip().split())
  def inpu():
    return sys.stdin.readline()
   
  #lets = 'abcdefghijklmnopqrstuvwxyz'
  #letts = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  #key = {lets[i]:i for i in range(26)}
   
  #prime  = [1,11,101,1009,10007,100003,1000003,10000019,100000007]
  #prime2 = [2,13,103,1013,10009,100019,1000033,10000169,100000049]
   
  #big = int(1e9 + 7)
  #big = 998244353
  
  #def gcd(a, b):
  #  while b:
  #    a, b = b, a%b
  #  return a
  
  """
  primes = []
  
  def primes_gen(n):
    for i in range(2,1+int(n**0.5)):
      g = True
      for j in primes:
        if i % j == 0:
          g = False
          break
      if g:
        primes.append(i)
  
  primes_gen(1e9 + 10)
  """
  """
   
  T = int(input())
   
  for t in range(T):
    n = int(input())
    #a,b = map(int,input().split())
    a = list(map(int,input().split()))  
    b = list(map(int,input().split()))  
    #a = input()
    #a = list(input())
    done = False
   
    for i in range(n):
      if b[i] > a[0]:
        ii = i
        break
    
    for i in range(n):
      if a[i] < b[0]:
        print(min(ii,i))
        break
  
  """
  
  def po(n):
    ij = 1
    for jj in range(n):
      ij *= 10
    return ij
  
  T = int(input())
  
  for t in range(T):
    #n = int(input())
    n,k = map(int,input().split())
    a = list(map(int,input().split()))  
    #a = input()
    #a = list(input())
    done = False
  
    k += 1
    a.sort()
  
    ca = 0
    cca = [0]*n
    for i in range(n-1):
      if ca + (po(a[i+1]-a[i])-1) >= k:
        cca[i] = k-ca
        done = True
        break
      else:
        l = po(a[i+1]-a[i])-1
        cca[i] = l
        ca += l
  
    ans = 0
    for i in range(n-1,-1,-1):
      ans += po(a[i])*cca[i]
    if not done:
      ans += po(a[-1])*(k-ca)
    print(ans)