#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <set>
#include <map>
#include <algorithm>

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
using namespace std;

const int INF = 0x3f3f3f3f;
const double EPS = 0.000000001;
const double PI = 3.141592653589793;
const long long LLINF = 99999999999999999LL;
const int MAX_N = 1000002;

int N;
int v[MAX_N];

int main()
{
    /*
    #ifndef ONLINE_JUDGE
        freopen("data.in", "r", stdin);
    #endif
    */

    cin >> N;

    int ans;
    if(N <= 10) {
        ans = 1;
        for(int i = 1; i < N; ++i) {
            ans *= i;
            ans %= N;
        }
    }
    else {
        bool isPrime = 1;
        if(N % 2 == 0) {
            isPrime = 0;
        }
        for(int i = 3; 1LL * i * i <= 1LL * N; ++i) {
            if(N % i == 0) {
                isPrime = 0;
                break;
            }
        }

        if(isPrime) {
            ans = N - 1;
        }
        else {
            ans = 0;
        }
    }

    printf("%d\n", ans);

    return 0;
}