AT_abc460_e [ABC460E] x + y ≡ x + y
Description
正整数 $ a,b $ に対して、 $ a $ と $ b $ を繋げて書いた時に出来る整数を $ \mathrm{concat}(a, b) $ と呼びます。厳密に述べると、 $ \mathrm{concat}(a, b) $ を次のように定義します。
- $ a, b $ を $ 10 $ 進表記して出来る文字列を $ A, B $ とする。 $ A, B $ をこの順に結合して出来る文字列を $ C $ とする。 $ C $ を $ 10 $ 進表記された整数とみなした時の値を $ \mathrm{concat}(a, b) $ とする。
例えば $ a = 123, b = 45 $ の時 $ \mathrm{concat}(a, b)=12345 $ です。
正整数 $ N, M $ が与えられます。
$ N $ 以下の正整数の組 $ (x,y) $ であって $ \mathrm{concat}(x, y) \equiv x + y \pmod{M} $ であるものの個数を $ 998244353 $ で割った余りを求めてください。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。ここで $ \mathrm{case}_i $ は $ i $ 番目のテストケースを意味する。
> $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ M $
Output Format
$ T $ 行出力せよ。 $ i $ 行目には $ i $ 番目のテストケースの答えを出力せよ。
各テストケースでは、条件を満たす $ (x,y) $ の個数を $ 998244353 $ で割った余りを出力せよ。
Explanation/Hint
### Sample Explanation 1
1 番目のテストケースについて、条件を満たす $ (x,y) $ は $ (2,1),(2,2),(2,3) $ の $ 3 $ 個です。
### Constraints
- $ 1 \leq T \leq 10^4 $
- $ 1 \leq N \leq 10^{18} $
- $ 2 \leq M \leq 10^9 $
- 入力される値は全て整数