#include #define rep(i,n) for(int i=0;i<(int)(n);i++) using namespace std; using ll = long long ; using P = pair ; using pll = pair; constexpr int INF = 1e9; constexpr long long LINF = 1e17; constexpr int MOD = 1000000007; constexpr double PI = 3.14159265358979323846; using vec = vector ; using mat = vector; mat mul(mat &A, mat &B,int mod) { mat C(A.size(),vec(B[0].size())); for(int i=0;i 0){ if(n & 1) B = mul(B,A,mod); A = mul(A,A,mod); n >>= 1; } return B; } int main(){ ll n; cin >> n; vector a(3); rep(i,3) cin >> a[i]; mat A = {{1,MOD-1,0}, {0,1,MOD-1}, {MOD-1,0,1}}; A = pow(A,n-1,MOD); vector ans(3); rep(i,3){ rep(j,3) ans[i] = (ans[i] + (A[i][j]*a[j])%MOD)%MOD; } rep(i,3) cout << ans[i] << " " ; cout << endl; return 0; }