#include <bits/stdc++.h>
using namespace std;
int main() {
  vector<double> tt;
  int a, b, m;
  struct {
    double x, y, z;
  } p;
  struct {
    double x, y, z;
  } t;
  struct {
    int x, y, z;
  } v;
  cin >> a >> b >> m;
  cin >> v.x >> v.y >> v.z;
  v.y = -v.y;
  p.x = a / 2.0;
  p.y = m;
  p.z = 0;
  int impact;
  while (true) {
    if (v.x > 0)
      t.x = (a - p.x) / v.x;
    else if (v.x < 0)
      t.x = p.x / fabs(v.x);
    else if (v.x == 0)
      t.x = FLT_MAX;
    tt.push_back(t.x);
    t.y = p.y / v.y;
    tt.push_back(t.y);
    if (v.z > 0)
      t.z = (b - p.z) / v.z;
    else if (v.z < 0)
      t.z = p.z / fabs(v.z);
    else if (v.z == 0)
      t.z = FLT_MAX;
    tt.push_back(t.z);
    double min = *min_element(tt.begin(), tt.end());
    if (t.x == min)
      if (v.x > 0)
        impact = 4;
      else
        impact = 3;
    else if (t.y == min)
      impact = 0;
    else if (t.z == min)
      if (v.z > 0)
        impact = 1;
      else
        impact = 2;
    switch (impact) {
      case 4:
        p.x = a;
        p.y -= t.x * v.y;
        p.z += t.x * v.z;
        v.x = -v.x;
        v.y = v.y;
        v.z = v.z;
        break;
      case 3:
        p.x = 0;
        p.y -= t.x * v.y;
        p.z += t.x * v.z;
        v.x = -v.x;
        v.y = v.y;
        v.z = v.z;
        break;
      case 1:
        p.x += t.z * v.x;
        p.y -= t.z * v.y;
        p.z = b;
        v.x = v.x;
        v.y = v.y;
        v.z = -v.z;
        break;
      case 2:
        p.x += t.z * v.x;
        p.y -= t.z * v.y;
        p.z = 0;
        v.x = v.x;
        v.y = v.y;
        v.z = -v.z;
        break;
      case 0:
        p.x += t.y * v.x;
        p.y = 0;
        p.z += t.y * v.z;
        cout.precision(7);
        cout.setf(ios::fixed);
        cout << p.x << " " << p.z << endl;
        return 0;
    }
    tt.clear();
  }
  return 0;
}
