#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define F first
#define S second
#define pii pair<int, int>
#define eb emplace_back
#define all(v) v.begin(), v.end()
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define rep3(i, l, n) for (int i = l; i < (n); ++i)
#define sz(v) (int)v.size()
#define inf (int)(1e9+7)
#define abs(x) (x >= 0 ? x : -(x))
#define ceil(a, b) a / b + !!(a % b)
template<typename T1, typename T2> inline void chmin(T1 &a, T2 b) { if (a > b) a = b; }
template<typename T1, typename T2> inline void chmax(T1 &a, T2 b) { if (a < b) a = b; }
ll pow(ll a, int b) { return b ? pow(a * a, b / 2) * (b % 2 ? a : 1) : 1; }
template<typename T> T gcd(T a, T b) { if (b == 0) return a; return gcd(b, a % b); }

const double EPS = 1E-8;
typedef vector<double> vec;
typedef vector<vec> mat;

vec gauss_jordan(const mat& A, const vec& b) {
    int n = (int)A.size();
    mat B(n, vec(n + 1));
    // init
    rep(i ,n) rep(j, n) B[i][j] = A[i][j];
    rep(i, n) B[i][n] = b[i];
    
    rep(i, n) {
        // 注目している変数の係数の絶対値が大きい式をi番目に持ってくる
        int pivot = i; // 要点
        rep3(j, i, n) if (abs(B[j][i]) > abs(B[pivot][i])) pivot = j;
        swap(B[i], B[pivot]);
        // 解がないか一意でない
        if (abs(B[i][i]) < EPS) return vec();
        // 注目している変数の係数を1にする
        rep3(j, i + 1, n + 1) B[i][j] /= B[i][i];
        // j番目の式からi番目の変数を消去
        rep(j, n) if (i != j) rep3(k, i + 1, n + 1) B[j][k] -= B[j][i] * B[i][k];
    }
    
    vec x(n);
    rep(i, n) x[i] = B[i][n];
    return x;
}

int main() {
    int a, bb, c, d, e, f;
    while (cin >> a >> bb >> c >> d >> e >> f) {
        mat A(2, vec(2));
        vec b(2);
        A[0][0] = a; A[0][1] = bb;
        A[1][0] = d; A[1][1] = e;
        b[0] = c;
        b[1] = f;
        auto v = gauss_jordan(A, b);
        cout << fixed << setprecision(3) << v[0] << " " << v[1] << '\n';
    }
    
}

