#include using namespace std; long long MOD = 1000000007; vector> matrix_multiplication(vector> &A, vector> &B){ int N = A.size(); int M = B.size(); int K = B[0].size(); vector> ans(N, vector(K, 0)); for (int i = 0; i < N; i++){ for (int j = 0; j < M; j++){ for (int k = 0; k < K; k++){ ans[i][k] += A[i][j] * B[j][k]; ans[i][k] %= MOD; } } } return ans; } vector> matrix_exponentiation(vector> A, long long M){ int N = A.size(); vector> ans(N, vector(N, 0)); for (int i = 0; i < N; i++){ ans[i][i] = 1; } while (M > 0){ if (M % 2 == 1){ ans = matrix_multiplication(ans, A); } A = matrix_multiplication(A, A); M /= 2; } return ans; } int main(){ long long N; cin >> N; long long A, B, C; cin >> A >> B >> C; vector> M = {{1, MOD - 1, 0}, {0, 1, MOD - 1}, {MOD - 1, 0, 1}}; M = matrix_exponentiation(M, N - 1); vector> F = {{A}, {B}, {C}}; vector> ans = matrix_multiplication(M, F); cout << ans[0][0] << ' ' << ans[1][0] << ' ' << ans[2][0] << endl; }