Задано целое положительное число \(D\). Построим из него следующий граф:
- каждая вершина является делителем \(D\) (не обязательно простым, \(1\) и \(D\) тоже включаются);
- между двумя вершинами \(x\) и \(y\) (\(x > y\)) есть неориентированное ребро, если \(x\) делится на \(y\) и \(\frac x y\) — простое число;
- вес ребра — это количество делителей \(x\), которые не являются делителями \(y\).
Например, граф для \(D=12\):
У ребра \((4,12)\) вес \(3\), потому что у \(12\) делители \([1,2,3,4,6,12]\), а у \(4\) делители \([1,2,4]\). Поэтому существует \(3\) делителя \(12\), которые не являются делителями \(4\) — \([3,6,12]\).
Между \(3\) и \(2\) нет ребра, потому что \(3\) не делится на \(2\). Между \(12\) и \(3\) нет ребра, потому что \(\frac{12}{3}=4\) не простое число.
Длина пути между некоторыми вершинами \(v\) и \(u\) в графе равна сумме весов ребер в нем. Например, длина пути \([(1, 2), (2, 6), (6, 12), (12, 4), (4, 2), (2, 6)]\) равен \(1+2+2+3+1+2=11\). Длина пустого пути равна \(0\).
Тогда кратчайший путь между двумя вершинами \(v\) и \(u\) — это путь, длина которого минимальна.
Два пути \(a\) и \(b\) различны, если либо содержат различное количество ребер, либо существует такая позиция \(i\), что ребра \(a_i\) и \(b_i\) различны.
Даны \(q\) запросов вида:
- \(v\) \(u\) — посчитайте количество кратчайших путей между вершинами \(v\) и \(u\).
Ответ может быть довольно большим, поэтому выведите его по модулю \(998244353\).