#include <iostream>
#include <string.h>
using namespace std;
int atoi(char x) ///changes character into integer number
{
switch(x)
{
case '0':
return 0;
break;
case '1':
return 1;
break;
case '2':
return 2;
break;
case '3':
return 3;
break;
case '4':
return 4;
break;
case '5':
return 5;
break;
case '6':
return 6;
break;
case '7':
return 7;
break;
case '8':
return 8;
break;
case '9':
return 9;
break;
}
}
void multiplication (string x, string y)
{
int length_x=x.length(), length_y=y.length(); ///length of strings
int a,b;
int index=length_y+length_x-1;
int k;
int rest=0;
int temp;
bool start=false;
int tab[20000]={0};
for(int i=length_x-1; i>=0; i--,index--)
{
k=index;
for(int j=length_y-1; j>=0; j--,k--)
tab[k]+=atoi(x[i])*atoi(y[j]);
}
for(int i=length_x+length_y-1; i>=0; i--)
{
tab[i-1]+=tab[i]/10;
tab[i]%=10;
}
for(int i=0; i<=length_x+length_y-1; i++){
if(tab[i]!=0||i==length_x+length_y-1)
start=true;
if(start==true)
cout<<tab[i];
}
cout<<endl;
}
int main()
{
int n;
string x,y;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>x;
cin>>y;
multiplication(x,y);
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGF0b2koY2hhciB4KSAgICAvLy9jaGFuZ2VzIGNoYXJhY3RlciBpbnRvIGludGVnZXIgbnVtYmVyCnsKICAgIHN3aXRjaCh4KQogICAgewogICAgY2FzZSAnMCc6CiAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICcxJzoKICAgICAgICByZXR1cm4gMTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzInOgogICAgICAgIHJldHVybiAyOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnMyc6CiAgICAgICAgcmV0dXJuIDM7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICc0JzoKICAgICAgICByZXR1cm4gNDsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzUnOgogICAgICAgIHJldHVybiA1OwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnNic6CiAgICAgICAgcmV0dXJuIDY7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICc3JzoKICAgICAgICByZXR1cm4gNzsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzgnOgogICAgICAgIHJldHVybiA4OwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnOSc6CiAgICAgICAgcmV0dXJuIDk7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KCgp2b2lkIG11bHRpcGxpY2F0aW9uIChzdHJpbmcgeCwgc3RyaW5nIHkpCnsKICAgIGludCBsZW5ndGhfeD14Lmxlbmd0aCgpLCBsZW5ndGhfeT15Lmxlbmd0aCgpOyAvLy9sZW5ndGggb2Ygc3RyaW5ncwogICAgaW50IGEsYjsKICAgIGludCBpbmRleD1sZW5ndGhfeStsZW5ndGhfeC0xOwogICAgaW50IGs7CiAgICBpbnQgcmVzdD0wOwogICAgaW50IHRlbXA7CiAgICBib29sIHN0YXJ0PWZhbHNlOwogICAgaW50IHRhYlsyMDAwMF09ezB9OwogICAgZm9yKGludCBpPWxlbmd0aF94LTE7IGk+PTA7IGktLSxpbmRleC0tKQogICAgewogICAgICAgIGs9aW5kZXg7CiAgICAgICAgZm9yKGludCBqPWxlbmd0aF95LTE7IGo+PTA7IGotLSxrLS0pCiAgICAgICAgICAgIHRhYltrXSs9YXRvaSh4W2ldKSphdG9pKHlbal0pOwogICAgfQoKICAgIGZvcihpbnQgaT1sZW5ndGhfeCtsZW5ndGhfeS0xOyBpPj0wOyBpLS0pCiAgICB7CiAgICAgICAgdGFiW2ktMV0rPXRhYltpXS8xMDsKICAgICAgICB0YWJbaV0lPTEwOwogICAgfQogICAgICAgIGZvcihpbnQgaT0wOyBpPD1sZW5ndGhfeCtsZW5ndGhfeS0xOyBpKyspewogICAgICAgICAgICBpZih0YWJbaV0hPTB8fGk9PWxlbmd0aF94K2xlbmd0aF95LTEpCiAgICAgICAgICAgICAgICBzdGFydD10cnVlOwogICAgICAgICAgICBpZihzdGFydD09dHJ1ZSkKICAgICAgICAgICAgY291dDw8dGFiW2ldOwoKICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PGVuZGw7Cn0KCgoKCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBzdHJpbmcgeCx5OwogICAgY2luPj5uOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIGNpbj4+eDsKICAgICAgICBjaW4+Pnk7CiAgICAgICAgbXVsdGlwbGljYXRpb24oeCx5KTsKICAgIH0KCn0K