#include #include using namespace std; using namespace atcoder; typedef long long ll; #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) static const double pi = 3.141592653589793; const ll INF = 1LL << 60; const ll mod = 1000000007; const ll imod = 998244353; using mint = modint998244353; vector dx = {1, 0, -1, 0}, dy = {0, 1, 0, -1}; ll P(ll x, ll n) { ll ret = 1; while (n > 0) { if (n & 1) ret *= x; x *= x; n >>= 1; } return ret; } void seek(bool f){ cout << (f ? "Yes" : "No") << endl; } int main(){ ll A, B, C, D, a, b, c, d; cin >> A >> B >> C >> D >> a >> b >> c >> d; ll Ma = A * a + B * c, Mb = A * b + B * d, Mc = C * a + D * c, Md = C * b + D * d; cout << Ma * Ma + Mb * Mc << " " << Ma * Mb + Mb * Md << endl; cout << Ma * Mc + Mc * Md << " " << Mb * Mc + Md * Md << endl; }