#include <iostream>
using namespace std;
int main() {
long long Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
scanf("%lld%lld%lld%lld%lld%lld%lld%lld", &Ax, &Ay, &Bx, &By, &Cx, &Cy, &Dx, &Dy);
long long minX = max(min(Ax, Bx), min(Cx, Dx));
long long minY = max(min(Ay, By), min(Cy, Dy));
long long maxX = min(max(Ax, Bx), max(Cx, Dx));
long long maxY = min(max(Ay, By), max(Cy, Dy));
if ((minX > maxX) || (minY > maxY)) { // Не пересекаются проекции
printf("No\n");
} else {
if (((Ay - By) * Cx + (Bx - Ax) * Cy == Ay * Bx - Ax * By) && ((Ay - By) * Dx + (Bx - Ax) * Dy == Ay * Bx - Ax * By)) {
printf("Yes\n"); // На одной прямой
} else { // координаты пересечения в виде рациональной дроби..
long long xn = (Ay * Bx - Ax * By) * (Dx - Cx) - (Cy * Dx - Cx * Dy) * (Bx - Ax);
long long xd = (xn == 0)? 1: (Ay - By) * (Dx - Cx) - (Bx - Ax) * (Cy - Dy);
long long yn = (Ay * Bx - Ax * By) * (Cy - Dy) - (Cy * Dx - Cx * Dy) * (Ay - By);
long long yd = (yn == 0)? 1: (Bx - Ax) * (Cy - Dy) - (Ay - By) * (Dx - Cx);
// ... с положительным знаменателем
if (xd < 0) {
xd = -xd; xn = -xn;
}
if (yd < 0) {
yd = -yd; yn = -yn;
}
// Попадает на пересечение проекций?
printf(((minX * xd <= xn) && (xn <= maxX * xd) && (minY * yd <= yn) && (yn <= maxY * yd))? "Yes\n": "No\n");
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgIGxvbmcgbG9uZyBBeCwgQXksIEJ4LCBCeSwgQ3gsIEN5LCBEeCwgRHk7CiAgIHNjYW5mKCIlbGxkJWxsZCVsbGQlbGxkJWxsZCVsbGQlbGxkJWxsZCIsICZBeCwgJkF5LCAmQngsICZCeSwgJkN4LCAmQ3ksICZEeCwgJkR5KTsKICAgbG9uZyBsb25nIG1pblggPSBtYXgobWluKEF4LCBCeCksIG1pbihDeCwgRHgpKTsKICAgbG9uZyBsb25nIG1pblkgPSBtYXgobWluKEF5LCBCeSksIG1pbihDeSwgRHkpKTsKICAgbG9uZyBsb25nIG1heFggPSBtaW4obWF4KEF4LCBCeCksIG1heChDeCwgRHgpKTsKICAgbG9uZyBsb25nIG1heFkgPSBtaW4obWF4KEF5LCBCeSksIG1heChDeSwgRHkpKTsKICAgaWYgKChtaW5YID4gbWF4WCkgfHwgKG1pblkgPiBtYXhZKSkgeyAvLyDQndC1INC/0LXRgNC10YHQtdC60LDRjtGC0YHRjyDQv9GA0L7QtdC60YbQuNC4CiAgICAgICBwcmludGYoIk5vXG4iKTsKICAgfSBlbHNlIHsKICAgICAgIGlmICgoKEF5IC0gQnkpICogQ3ggKyAoQnggLSBBeCkgKiBDeSA9PSBBeSAqIEJ4IC0gQXggKiBCeSkgJiYgKChBeSAtIEJ5KSAqIER4ICsgKEJ4IC0gQXgpICogRHkgPT0gQXkgKiBCeCAtIEF4ICogQnkpKSB7CiAgICAgICAgICAgcHJpbnRmKCJZZXNcbiIpOyAvLyDQndCwINC+0LTQvdC+0Lkg0L/RgNGP0LzQvtC5CiAgICAgICB9IGVsc2UgeyAvLyDQutC+0L7RgNC00LjQvdCw0YLRiyDQv9C10YDQtdGB0LXRh9C10L3QuNGPINCyINCy0LjQtNC1INGA0LDRhtC40L7QvdCw0LvRjNC90L7QuSDQtNGA0L7QsdC4Li4KICAgICAgICAgICAgbG9uZyBsb25nIHhuID0gKEF5ICogQnggLSBBeCAqIEJ5KSAqIChEeCAtIEN4KSAtIChDeSAqIER4IC0gQ3ggKiBEeSkgKiAoQnggLSBBeCk7CiAgICAgICAgICAgIGxvbmcgbG9uZyB4ZCA9ICh4biA9PSAwKT8gMTogKEF5IC0gQnkpICogKER4IC0gQ3gpIC0gKEJ4IC0gQXgpICogKEN5IC0gRHkpOwogICAgICAgICAgICBsb25nIGxvbmcgeW4gPSAoQXkgKiBCeCAtIEF4ICogQnkpICogKEN5IC0gRHkpIC0gKEN5ICogRHggLSBDeCAqIER5KSAqIChBeSAtIEJ5KTsKICAgICAgICAgICAgbG9uZyBsb25nIHlkID0gKHluID09IDApPyAxOiAoQnggLSBBeCkgKiAoQ3kgLSBEeSkgLSAoQXkgLSBCeSkgKiAoRHggLSBDeCk7CiAgICAgICAgICAgIC8vIC4uLiDRgSDQv9C+0LvQvtC20LjRgtC10LvRjNC90YvQvCDQt9C90LDQvNC10L3QsNGC0LXQu9C10LwKICAgICAgICAgICAgaWYgKHhkIDwgMCkgewogICAgICAgICAgICAgICAgeGQgPSAteGQ7IHhuID0gLXhuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh5ZCA8IDApIHsKICAgICAgICAgICAgICAgIHlkID0gLXlkOyB5biA9IC15bjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyDQn9C+0L/QsNC00LDQtdGCINC90LAg0L/QtdGA0LXRgdC10YfQtdC90LjQtSDQv9GA0L7QtdC60YbQuNC5PwogICAgICAgICAgICBwcmludGYoKChtaW5YICogeGQgPD0geG4pICYmICh4biA8PSBtYXhYICogeGQpICYmIChtaW5ZICogeWQgPD0geW4pICYmICh5biA8PSBtYXhZICogeWQpKT8gIlllc1xuIjogIk5vXG4iKTsKICAgICAgIH0KICAgfQogICByZXR1cm4gMDsKfQ==