#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cassert>
#include <vector>
#include <string>
#include <cmath>
#include <map> 
#include <sstream>
#include <cstdio>
#include <complex> 
using namespace std;
 
const int MAX= 10000100;

#define loop(i,a,b) for(int i = a ; i < b ; i ++)
#define rep(i,a) loop(i,0,a)
#define all(a) (a).begin(),(a).end()
#define ll long long int
#define gcd(a,b) __gcd(a,b)
#define pb(a) push_back(a)
int GCD(int a, int b) {if(!b) return a; return gcd(b, a%b);}
int lcm(int a, int b) {return a*b / gcd(a, b);}
typedef complex<double> P;

double dot(P a,P b){
  return a.real() * b.real() + a.imag() * b.imag();
}

P project(P s1, P s2,P p){
  P base = s2 - s1;
  double t = dot(p - s1, base)/norm(base);
  return s1 + base*t;
}

P reflect(P s1, P s2, P p){
  return p + (project(s1,s2,p) - p) * 2.0;
}

int main(void){
  P s1,s2,p;
  string line;
  while(getline(cin,line)){
    replace(line.begin(),line.end(),',',' ');
    stringstream ss(line);
    ss >> s1.real() >> s1.imag()
       >> s2.real() >> s2.imag()
       >> p.real() >> p.imag();
    P q = reflect(s1,s2,p);
    printf("%.8f %.8f\n", q.real(), q.imag());
    
  }
}