#include <iostream>
#include <cmath>
#define ll unsigned long long
using namespace std;
long long int fastpowmod(long long int b, long long int p, long long int m)
{
if(p == 0 || b == 1) return (1 % m);
if(p % 2)
return (b*fastpowmod(b,p-1,m)) % m;
long long int c = fastpowmod(b,p/2,m);
return (c*c) % m;
}
ll power(ll x, int y)
{
ll temp;
if( y == 0)
return 1;
temp = power(x, y/2);
if (y%2 == 0)
return temp*temp;
else
{
if(y > 0)
return x*temp*temp;
else
return (temp*temp)/x;
}
}
int main() {
std::ios::sync_with_stdio(false);
int T;
cin>>T;
ll n,k,a,answer;
double originalNumber,fractional;
while(T-->0)
{
cin>>n>>k;
double originalNumber = n*log10(n);
a = originalNumber; //Typecasting the decimal value to integer to get the part before fractional
fractional = originalNumber-a; //To get the decimal part i.e x.something
answer=pow(10,(fractional))*power(10,k-1);
cout<<answer<<" ";
ll answer2=fastpowmod(n,n,power(10,k));
ll digits=(log10(answer2)+1);
if(answer2==0)
if(n==10)
for(ll i=0;i<k-1;i++)
cout<<0;
else
for(ll i=0;i<k;i++)
cout<<0;
if(n==10)
if(digits!=k)
{
cout<<0;
digits++;
}
if(digits==k)
cout<<answer2;
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNkZWZpbmUgbGwgdW5zaWduZWQgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgaW50IGZhc3Rwb3dtb2QobG9uZyBsb25nIGludCBiLCBsb25nIGxvbmcgaW50IHAsIGxvbmcgbG9uZyBpbnQgbSkKewoJaWYocCA9PSAwIHx8IGIgPT0gMSkgcmV0dXJuICgxICUgbSk7CiAKCWlmKHAgJSAyKQoJCXJldHVybiAoYipmYXN0cG93bW9kKGIscC0xLG0pKSAlIG07CiAKCWxvbmcgbG9uZyBpbnQgYyA9IGZhc3Rwb3dtb2QoYixwLzIsbSk7CglyZXR1cm4gKGMqYykgJSBtOwp9CmxsIHBvd2VyKGxsIHgsIGludCB5KQp7CiAgICBsbCB0ZW1wOwogICAgaWYoIHkgPT0gMCkKICAgICAgIHJldHVybiAxOwogICAgdGVtcCA9IHBvd2VyKHgsIHkvMik7ICAgICAgIAogICAgaWYgKHklMiA9PSAwKQogICAgICAgIHJldHVybiB0ZW1wKnRlbXA7CiAgICBlbHNlCiAgICB7CiAgICAgICAgaWYoeSA+IDApCiAgICAgICAgICAgIHJldHVybiB4KnRlbXAqdGVtcDsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHJldHVybiAodGVtcCp0ZW1wKS94OwogICAgfQp9ICAKCmludCBtYWluKCkgewoJc3RkOjppb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CglpbnQgVDsKCWNpbj4+VDsKCWxsIG4sayxhLGFuc3dlcjsKCWRvdWJsZSBvcmlnaW5hbE51bWJlcixmcmFjdGlvbmFsOwoJd2hpbGUoVC0tPjApCgl7CgkJY2luPj5uPj5rOwoJCWRvdWJsZSBvcmlnaW5hbE51bWJlciA9IG4qbG9nMTAobik7CgkJYSA9IG9yaWdpbmFsTnVtYmVyOyAvL1R5cGVjYXN0aW5nIHRoZSBkZWNpbWFsIHZhbHVlIHRvIGludGVnZXIgdG8gZ2V0IHRoZSBwYXJ0IGJlZm9yZSBmcmFjdGlvbmFsCgkJZnJhY3Rpb25hbCA9IG9yaWdpbmFsTnVtYmVyLWE7IC8vVG8gZ2V0IHRoZSBkZWNpbWFsIHBhcnQgaS5lIHguc29tZXRoaW5nCgkJYW5zd2VyPXBvdygxMCwoZnJhY3Rpb25hbCkpKnBvd2VyKDEwLGstMSk7CQoJCWNvdXQ8PGFuc3dlcjw8IiAiOwoJCWxsIGFuc3dlcjI9ZmFzdHBvd21vZChuLG4scG93ZXIoMTAsaykpOwoJCWxsIGRpZ2l0cz0obG9nMTAoYW5zd2VyMikrMSk7CgkJaWYoYW5zd2VyMj09MCkKCQlpZihuPT0xMCkKCQlmb3IobGwgaT0wO2k8ay0xO2krKykKCQljb3V0PDwwOwoJCWVsc2UKCQlmb3IobGwgaT0wO2k8aztpKyspCgkJY291dDw8MDsKCQlpZihuPT0xMCkKCQlpZihkaWdpdHMhPWspCgkJewoJCWNvdXQ8PDA7CgkJZGlnaXRzKys7CgkJfQoJCWlmKGRpZ2l0cz09aykKCQljb3V0PDxhbnN3ZXIyOwoJCWNvdXQ8PGVuZGw7IAoJfQoJcmV0dXJuIDA7Cn0K