#include<bits/stdc++.h>
#define ni 1005
using namespace std;
long long n,m,t,f[ni][ni],son[ni][ni];
string a;
long long s[ni][ni];
void find(int n,int m)
{
if(!m) return;
else
find(son[n][m],m-1);
for(int i=son[n][m];i<n;i++)
cout<<a[i];
cout<<" ";
return;
}
int main()
{
/*
1
29962086110065 5
9692024940000
2 9 9620 861100 65
1
6765826696162781268 12
2056931328
6 7 6 5 8 2 6 6 9 61 6278 1268
*/
cin>>t;
while(t--)
{
int m,s1[ni];
memset(s,0,sizeof(s));
memset(f,0,sizeof(f));
memset(s1,0,sizeof(s1));
cin>>a>>m;
n=a.size();
for(int i=0;i<n;i++)
s1[i+1]=a[i]-'0';
for(int i=1;i<=n;i++)
{
s[i][i]=s1[i];
for(int j=i+1;j<=n;j++)
s[i][j]=s[i][j-1]*10+s1[j];
}
for(int i=1;i<=n;i++)
f[i][1]=s[1][i];
/* for(int i=1;i<=n;i++)
{
cout<<endl;
for(int j=1;j<=n;j++)
cout<<s[i][j]<<" ";
}*/
for(int i=2;i<=n;i++)
for(int j=2;j<=m;j++)
for(int k=1;k<i;k++)
{
if(f[i][j]<f[k][j-1]*s[k+1][i])
{
f[i][j]=f[k][j-1]*s[k+1][i];
son[i][j]=k;
}
}
cout<<f[n][m]<<endl;
find(n,m);
cout<<endl;
}
}