不速之客
题号:NC272397
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

这一天来了一位不速之客Herobrine,他想要摧毁你的家园。他给了你一次机会,你只需要回答他一个问题,答案正确了他就可以放过你。      他将给你一个正整数 n 和一个整数 k,问在 x 为整数 且 1\leq x\leq n 下,满足等式 |x-f(x)|\leq kx 的值,因为可能有多个取值,Herobrine 只需要任意一种符合条件的即可。 假设 x 是一个 m 位的整数,则 f(x) 为各数位的 m 次幂的和,即 f(123)=1^3+2^3+3^3,f(9485)=9^4+4^4+8^4+5^4,f(98370)=9^5+8^5+3^5+7^5+0^5 。 现在你手足无措,你会在 [1,n] 中等概率的选择一个整数作为答案,求你能答对问题的概率 模 998244353

输入描述:

第一行 两个整数 n 和 k
1\leq n<10^{10}
0\leq k<10^{10}
保证 \gcd(n,998244353)=1

输出描述:

一个正整数,表示答对问题的概率 模 998244353
设答对的概率为 \dfrac{p}{q},则 \dfrac{p}{q}\equiv p*q^{998244351}\pmod {998244353}
示例1

输入

复制
999 0

输出

复制
708463710

说明

n=999 且 k=0 时,问题的答案有 1,2,3,4,5,6,7,8,9,153,370,371,407
一共是 13 种,所以答对问题的概率为 \dfrac{13}{999},则应输出 13*999^{998244351}\mod 998244353=708463710
示例2

输入

复制
32 16

输出

复制
311951361

说明

当 n=32 且 k=16 时,问题的答案有1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,21,22,23,24,25,26
一共是 22 种,所以答对问题的概率为 \dfrac{22}{32},则应输出 22*32^{998244351}\mod 998244353=311951361
示例3

输入

复制
9999999999 0

输出

复制
477636189

说明

当 n=9999999999 且 k=0 时,问题的答案有

一共是 32 种,所以答对问题的概率为 \dfrac{32}{9999999999 },则应输出 32*9999999999 ^{998244351}\mod 998244353=477636189

备注: