using System;
public class Test
{
public static int GetIntegerDigitCount(int numSize)
{
return numSize.ToString().Length;
}
public static int Max(int x, int y)
{
if (x == y)
return x;
else if (x > y)
return x;
else
return y;
}
public static int Karatsuba(int firstNo, int secondNo)
{
if (firstNo < 10 || secondNo < 10)
{
return firstNo * secondNo;
}
int N = Max(GetIntegerDigitCount(firstNo), GetIntegerDigitCount(secondNo));
N = (N / 2) + (N % 2);
int m = (int)Math.Pow(10, N);
int b = firstNo / m;
int a = firstNo - (b * m);
int d = secondNo / m;
int c = secondNo - (d * m);
int q0 = Karatsuba(a, c);
int q1 = Karatsuba(a + b, c + d);
int q2 = Karatsuba(b, d);
return q0 + ((q1 - q0 - q2) * m) + (q2 * (int)(Math.Pow(10, 2 * N)));
}
public static void Main()
{
int t = 0, x, y;
string testcase = Console.ReadLine();
Int32.TryParse(testcase, out t);
for(int i = 1; i <= t; i++)
{
String[] tokens = Console.ReadLine().Split();
x = int.Parse(tokens[0]);
y = int.Parse(tokens[1]);
Console.WriteLine(Karatsuba(x, y));
}
}
}