#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()


const double EPS = 1e-8;
const double INF = 1e12;
typedef complex<double> P;
namespace std {
  bool operator < (const P& a, const P& b) {
    return real(a) != real(b) ? real(a) < real(b) : imag(a) < imag(b);
  }
}
double cross(const P& a, const P& b) {
  return imag(conj(a)*b);
}
double dot(const P& a, const P& b) {
  return real(conj(a)*b);
}

int main() {
  double x1,y1,x2,y2,xq,yq;
  while(scanf("%lf,%lf,%lf,%lf,%lf,%lf",&x1,&y1,&x2,&y2,&xq,&yq)==6) {
    P p1(x1,y1), p2(x2,y2), pq(xq,yq);
    double ang = 2*(arg(p2-p1)-arg(pq-p1));
    P pr;
    pr = p1 + (pq-p1) * P(cos(ang), sin(ang));
    printf("%.6lf %.6lf\n", pr.real(), pr.imag());
  }
}