#include <iostream>
using namespace std;

#include <cmath>
struct Point{
  double x, y;
  Point(double x = 0, double y = 0):x(x), y(y){}
  Point operator +(Point p) { return Point(x + p.x, y + p.y); }
  Point operator -(Point p) { return Point(x - p.x, y - p.y); }
  Point operator *(double a) { return Point(x * a, y * a); }

  double norm() { return x*x + y*y; }
  double abs()  { return sqrt(norm()); }
};
typedef Point Vector;

struct Segment {
  Point p1, p2;
};
typedef Segment Line;

double dot(Vector a, Vector b) {
  return a.x*b.x + a.y*b.y;
}

double cross(Vector a, Vector b) {
  return a.x*b.y - a.y*b.x;
}

bool isParallel(Vector a, Vector b) {
  return cross(a, b) == 0.0;
}

Point project(Segment s, Point p) {
  Vector base = s.p2 - s.p1;
  return s.p1 + base*(dot(p-s.p1, base)/base.norm());
}

Point reflect(Segment s, Point p) {
  return p + (project(s, p) - p) * 2.0;
}

int main() {
  Segment s;
  Point q, r;
  while(scanf("%lf,%lf,%lf,%lf,%lf,%lf",
	      &s.p1.x, &s.p1.y, &s.p2.x, &s.p2.y, &q.x, &q.y) != EOF) {

    r = reflect(s, q);
    printf("%.6f %.6f\n", r.x, r.y);
  }
  return 0;
}