#pragma GCC optimize ( "O3" ) #pragma GCC optimize ( "unroll-loops" ) #pragma GCC target ( "sse4.2,fma,avx2,popcnt,lzcnt,bmi2" ) typedef long long ll; int main() { int P; scanf( "%d" , &P ); ll a = 0; ll fact_inv = P - 1; for( int i = P - 1 ; i >= 0 ; --i ){ a += fact_inv; fact_inv *= i; fact_inv %= P; } printf( "%lld\n" , a % P ); }