#include #include #include #include using namespace std; using ll = long long; using ull = unsigned long long; #define rep(i,n) for(int i=0; i<(n); i++) using mll = atcoder::static_modint<1000000007>; ull N; mll A,B,K; int main(){ cin >> N; { int a,b,k; cin >> a >> b >> k; A=a; B=b; K=k; } if(N >= 1000000) exit(0); rep(i,N-1){ mll C = (B * B + K) / A; A = B; B = C; } cout << A.val() << "\n"; return 0; } struct ios_do_not_sync{ ios_do_not_sync(){ ios::sync_with_stdio(false); cin.tie(nullptr); } } ios_do_not_sync_inst;