#include<stdio.h>  

extern int p;

int f (int *x, int c) {
c = c - 1;
if (c==0) return 1;
*x = *x + 1;
return *x * f(&p,c);
}

int p=5;

int main()  {
    int res = f(&p,5);
    printf("%d",res);
}  