#include <bits/stdc++.h>
using namespace std;
struct Point {
double x, y;
};
bool kvadrant(int q, const vector<Point>& p) {
for (double a = 0; a <= 1.0; a += 0.005) {
for (double b = 0; b <= 1.0 - a; b += 0.005) {
double c = 1.0 - a - b;
double px = a * p[0].x + b * p[1].x + c * p[2].x;
double py = a * p[0].y + b * p[1].y + c * p[2].y;
if (q == 1 && px > 0 && py > 0) return true;
if (q == 2 && px < 0 && py > 0) return true;
if (q == 3 && px < 0 && py < 0) return true;
if (q == 4 && px > 0 && py < 0) return true;
}
}
return false;
}
int main() {
vector<Point> points(3);
for (int i = 0; i < 3; i++) {
if (!(cin >> points[i].x >> points[i].y)) return 0;
}
for (int q = 1; q <= 4; q++) {
if (kvadrant(q, points)) cout << "+";
else cout << "-";
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgUG9pbnQgewogICAgZG91YmxlIHgsIHk7Cn07Cgpib29sIGt2YWRyYW50KGludCBxLCBjb25zdCB2ZWN0b3I8UG9pbnQ+JiBwKSB7CiAgICBmb3IgKGRvdWJsZSBhID0gMDsgYSA8PSAxLjA7IGEgKz0gMC4wMDUpIHsKICAgICAgICBmb3IgKGRvdWJsZSBiID0gMDsgYiA8PSAxLjAgLSBhOyBiICs9IDAuMDA1KSB7CiAgICAgICAgICAgIGRvdWJsZSBjID0gMS4wIC0gYSAtIGI7CiAgICAgICAgICAgIGRvdWJsZSBweCA9IGEgKiBwWzBdLnggKyBiICogcFsxXS54ICsgYyAqIHBbMl0ueDsKICAgICAgICAgICAgZG91YmxlIHB5ID0gYSAqIHBbMF0ueSArIGIgKiBwWzFdLnkgKyBjICogcFsyXS55OwoKICAgICAgICAgICAgaWYgKHEgPT0gMSAmJiBweCA+IDAgJiYgcHkgPiAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgaWYgKHEgPT0gMiAmJiBweCA8IDAgJiYgcHkgPiAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgaWYgKHEgPT0gMyAmJiBweCA8IDAgJiYgcHkgPCAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgaWYgKHEgPT0gNCAmJiBweCA+IDAgJiYgcHkgPCAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewogICAgdmVjdG9yPFBvaW50PiBwb2ludHMoMyk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgewogICAgICAgIGlmICghKGNpbiA+PiBwb2ludHNbaV0ueCA+PiBwb2ludHNbaV0ueSkpIHJldHVybiAwOwogICAgfQoKICAgIGZvciAoaW50IHEgPSAxOyBxIDw9IDQ7IHErKykgewogICAgICAgIGlmIChrdmFkcmFudChxLCBwb2ludHMpKSBjb3V0IDw8ICIrIjsKICAgICAgICBlbHNlIGNvdXQgPDwgIi0iOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9