#include using namespace std; using ll=long long; using lll=__int128_t; lll modinv(lll a, lll m) { lll b = m, u = 1, v = 0; while (b) { lll t = a / b; a -= t * b; swap(a, b); u -= t * v; swap(u, v); } u %= m; if (u < 0) u += m; return u; } lll f(lll a,lll b,lll mod){ lll g=gcd(gcd(a,b),mod); a/=g; b/=g; mod/=g; if (gcd(a,mod)==1) return (modinv(a,mod)*b)%mod; else return -1; } void solve(){ vector ten(20); ten[0]=1; for (int i=1;i<20;i++) ten[i]=ten[i-1]*10; string x; ll m; cin>>x>>m; int nx=x.size(); for (int nz=0;nz+nx*2<=18;nz++){ lll p=ten[nx+nz]+ten[0]; lll b=((-p*stoll(x))%m+m)%m; lll a=ten[nx]; ll z=f(a,b,m); if (z!=-1){ string z2=to_string(z); if (nzz2.size()) z2="0"+z2; string ans=x+z2+x; assert(stoll(ans)%m==0); cout<>t; while (t--) solve(); }