def solve():
n,k=list(map(int,input().split()))
a=list(map(int,input().split()))
val=0
for i in range(n):
if i==n-1:
val+=k*(10**a[i])
break
diff=10**(a[i+1]-a[i])
if k<diff-1:
val+=k*(10**a[i])
break
if i==0:
k-=diff-2
val+=diff-2
else:
k-=diff-1
val+=(diff-1)*(10**a[i])
print(val+1)
t = int(input())
for i in range(t):
solve()
#include<bits/stdc++.h>
using namespace std;
#define IOS std::ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL);
#define pb push_back
#define pf push_front
#define mod 1000000007ll //998244353ll
#define lld long double
#define ll long long int
void solve(){
ll n,k;
cin>>n>>k;
k++;
vector<int>v(n,0);
for(int i=0;i<n;i++)cin>>v[i];
sort(v.begin(),v.end());
ll ans=0;
for (int i=0;i<n && k>0 ;i++){
ll d=pow(10,v[i]);
if(i != n-1){
ll diff=v[i+1]-v[i];
ll x=pow(10,diff);
x-=1;
ll y=min(k,x);
k-=y;
ans+=d*y;
}
else{
ans+=k*d;
k=0;
}
}
cout<<ans<<endl;
}
int main()
{
IOS
int t;
cin>>t;
while(t--)
solve();
return 0;
}
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |