#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>
#include <fstream>
#include <bitset>

using namespace std;

typedef long long ll;
typedef pair<ll, ll> P;
typedef vector<ll> V;
typedef complex<double> Point;

#define PI acos(-1.0)
#define EPS 1e-10
const ll INF = 1e9 + 7;
const ll MOD = 1e9 + 7;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define EQ(a,b) (abs((a)-(b))<EPS)
#define EQV(a,b) ( EQ((a).real(), (b).real()) && EQ((a).imag(), (b).imag()) )
#define fi first
#define se second

char c;
double x[3], y[3];

Point p[3];

double dist(Point a, Point b){
	return abs(a - b);
}

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

int main(){
	while (cin >> x[0] >> c >> y[0] >> c >> x[1] >> c >> y[1]
		>> c >> x[2] >> c >> y[2]){
		REP(i, 3)p[i] = Point(x[i], y[i]);
		Point n = (p[1] - p[0])/dist(p[1], p[0]);
		//printf("%.10lf %.10lf\n", n.real(), n.imag());
		//cout << dot(n, p[2] - p[0]) << endl;
		n *= (dot(n, p[2] - p[0]));

		n = n - (p[2] - p[0]);
		n = p[2] + 2.0 * n;
		printf("%.10lf %.10lf\n", n.real(), n.imag());
	}
}