CF1644F.Basis
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
For an array of integers a , let's define ∣a∣ as the number of elements in it.
Let's denote two functions:
- F(a,k) is a function that takes an array of integers a and a positive integer k . The result of this function is the array containing ∣a∣ first elements of the array that you get by replacing each element of a with exactly k copies of that element.For example, F([2,2,1,3,5,6,8],2) is calculated as follows: first, you replace each element of the array with 2 copies of it, so you obtain [2,2,2,2,1,1,3,3,5,5,6,6,8,8] . Then, you take the first 7 elements of the array you obtained, so the result of the function is [2,2,2,2,1,1,3] .
- G(a,x,y) is a function that takes an array of integers a and two different integers x and y . The result of this function is the array a with every element equal to x replaced by y , and every element equal to y replaced by x .For example, G([1,1,2,3,5],3,1)=[3,3,2,1,5] .
An array a is a parent of the array b if:
- either there exists a positive integer k such that F(a,k)=b ;
- or there exist two different integers x and y such that G(a,x,y)=b .
An array a is an ancestor of the array b if there exists a finite sequence of arrays c0,c1,…,cm ( m≥0 ) such that c0 is a , cm is b , and for every i∈[1,m] , ci−1 is a parent of ci .
And now, the problem itself.
You are given two integers n and k . Your goal is to construct a sequence of arrays s1,s2,…,sm in such a way that:
- every array si contains exactly n elements, and all elements are integers from 1 to k ;
- for every array a consisting of exactly n integers from 1 to k , the sequence contains at least one array si such that si is an ancestor of a .
Print the minimum number of arrays in such sequence.
输入格式
The only line contains two integers n and k ( 1≤n,k≤2⋅105 ).
输出格式
Print one integer — the minimum number of elements in a sequence of arrays meeting the constraints. Since the answer can be large, output it modulo 998244353 .
输入输出样例
输入#1
3 2
输出#1
2
输入#2
4 10
输出#2
12
输入#3
13 37
输出#3
27643508
输入#4
1337 42
输出#4
211887828
输入#5
198756 123456
输出#5
159489391
输入#6
123456 198756
输出#6
460526614
说明/提示
Let's analyze the first example.
One of the possible answers for the first example is the sequence [[2,1,2],[1,2,2]] . Every array of size 3 consisting of elements from 1 to 2 has an ancestor in this sequence:
- for the array [1,1,1] , the ancestor is [1,2,2] : F([1,2,2],13)=[1,1,1] ;
- for the array [1,1,2] , the ancestor is [1,2,2] : F([1,2,2],2)=[1,1,2] ;
- for the array [1,2,1] , the ancestor is [2,1,2] : G([2,1,2],1,2)=[1,2,1] ;
- for the array [1,2,2] , the ancestor is [1,2,2] ;
- for the array [2,1,1] , the ancestor is [1,2,2] : G([1,2,2],1,2)=[2,1,1] ;
- for the array [2,1,2] , the ancestor is [2,1,2] ;
- for the array [2,2,1] , the ancestor is [2,1,2] : F([2,1,2],2)=[2,2,1] ;
- for the array [2,2,2] , the ancestor is [1,2,2] : G(F([1,2,2],4),1,2)=G([1,1,1],1,2)=[2,2,2] .