import math def inv(a, m): """法 m における a の逆元 """ r0, r1 = m, a x0, x1 = 0, 1 while r1 != 0: q = r0 // r1 r0, r1 = r1, r0 - q * r1 x0, x1 = x1, x0 - q * x1 # ここでもし r_0 != 1 ならエラー処理をすべき if x0 < 0: x0 += m return x0 T = int(input()) for _ in range(T): X,M = input().split() M = int(M) if len(X) == 3: if X[0] == X[2]: res = int(X[0]+X[1]+X[0]+X[1]+X[0]) if res % M == 0: print(res) continue if X[0] == X[1] == X[2]: res = int(X) if res % M == 0: print(res) continue res = int(X[0]*4) if res % M == 0: print(res) continue elif len(X) == 2: if X[0] == X[1]: res = int(X) if res % M == 0: print(res) continue res = int(X[0]*3) if res % M == 0: print(res) continue else: res = int(X) if res % M == 0: print(res) continue # 意味のないコメントアウト x = int(X) l = len(X) print("Debug",x,l,M) ans = -1 for k in range(2*l,19): a = -x*(1+10**(k-l)) a %= M g = math.gcd(10**l,M) if a % g != 0: continue M_ = M//g print("inv",inv(10**l//g,M_)) c_0 = (a//g)*inv(10**l//g,M_) print("test",c_0,M//g) L = (-c_0-1)//M_ + 1 U = (10**(k-2*l)-c_0-1)//M_ + 1 print(k,L,U) if L != U: ans = x * 10**(k-l) + (c_0+L*M_) * 10**l + x break if ans == -1: continue print(ans)