#include <iostream>
#include <cstdio>
#include <complex>

using namespace std;
typedef long long ll;

typedef double R;
typedef complex<R> P;

const R EPS = 1e-10;
const R PI = acos(-1);
int sgn(R a) {
    if (a < -EPS) return -1;
    if (a > EPS) return 1;
    return 0;
}


bool near(P a, P b) {
    return !sgn(abs(a-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); }

P p[3];
void solve() {
    p[1] -= p[0];
    p[2] -= p[0];
    R ar = arg(p[1]);
    p[2] /= polar(1.0, ar);
    p[2] = conj(p[2]);
    p[2] *= polar(1.0, ar);
    p[2] += p[0];
    printf("%.20lf %.20lf\n", p[2].real(), p[2].imag());
}


int main() {
    while (true) {
        R d[6];
        if (scanf("%lf,%lf,%lf,%lf,%lf,%lf", d, d+1, d+2, d+3, d+4, d+5) <= 0) break;
        p[0] = P(d[0], d[1]);
        p[1] = P(d[2], d[3]);
        p[2] = P(d[4], d[5]);
        solve();
    }
    return 0;
}