import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.NoSuchElementException; public class Main{ public static void main(String[] args) { new Main().run(); } final long MOD=998244353; long pow(long a,long n) { return n!=0?pow(a*a%MOD,n/2)*(n%2==1?a:1)%MOD:1; } long inv(long a) { return pow(a,MOD-2); } int MAX=(int)2e5; long[] fac=new long[MAX]; long[] ifac=new long[MAX]; { fac[0]=ifac[0]=1; for (int i=1;i Integer.MAX_VALUE) throw new NumberFormatException(); return (int) nl; } public double nextDouble() { return Double.parseDouble(next());} }