#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) ({ulong _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char*wp=buf+sizeof buf;wt(v);write(1,wp,buf+sizeof buf-wp);}) typedef unsigned long ulong; int main(){ char buf[64],*rp=buf; read(0,buf,sizeof buf); ulong n=rd(); wt1(n*(n-1)%998244353); _exit(0); }