#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define N (1000000000+7) //#define N 998244353 #define INF 1e16 typedef long long ll; typedef pair P; typedef vector vec; typedef vector mat; const int inf = (int)1e9; mat mul(mat &A,mat &B){ mat C(A.size(),vec(B[0].size())); for(int i=0;i0){ if(n&1)B = mul(B,A); A = mul(A,A); n>>=1; } return B; } int main(void){ ll n,a,b,c; cin>>n>>a>>b>>c; mat A(3,vec(3)); A[0][0]=1; A[0][1]=-1; A[0][2]=0; A[1][0]=0; A[1][1]=1; A[1][2]=-1; A[2][0]=-1; A[2][1]=0; A[2][2]=1; A = pow(A,n-1); ll ans1 = (((A[0][0]*a)%N+(A[0][1]*b)%N)+(A[0][2]*c)%N)%N; ans1 = (ans1+N)%N; ll ans2 = (((A[1][0]*a)%N+(A[1][1]*b)%N)+(A[1][2]*c)%N)%N; ans2 = (ans2+N)%N; ll ans3 = (((A[2][0]*a)%N+(A[2][1]*b)%N)+(A[2][2]*c)%N)%N; ans3 = (ans3+N)%N; cout<