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: ''' C. Banknotes
  https://codeforces.com/contest/1606/problem/C
  '''
  
  import io, os, sys
  input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline  # decode().strip() if str
  output = sys.stdout.write
  
  ten_powers = [10**i for i in range(11)]
  
  def solve(N, K, pows):
  	# costs[i] = min coins to make all amount up to 10^pows[i] - 1 (pows[i] of 9-digits)
  	# e.g. pows = [1, 10^2, 10^5], costs[10^5-1] = cost to make 999 * 10^2 (=999) + costs[10^2 - 1]
  	costs = [0]*N
  	for i in range(1, N):
  		costs[i] = 10**(pows[i]-pows[i-1]) - 1 + costs[i-1]
  	
  	i = 1
  	while i < N:
  		if costs[i] > K: break
  		i += 1
  
  	# to make max number with K notes:
  	# * reserve costs[i-1] to make 0..10^pows[i-1], using pows[0..i-2]
  	# * remain K - costs[i-1] to buy 10**(pows[i-1])
  	return (K - costs[i-1] + 1) * 10**(pows[i-1]) + 10**(pows[i-1]) - 1
  
  
  def main():
  	T = int(input())
  	for _ in range(T):
  		N, K = list(map(int, input().split()))
  		pows = list(map(int, input().split()))
  		out = solve(N, K, pows)
  		output(str(out) + '\n')
  
  
  if __name__ == '__main__':
  	main()
  