- import java.util.*; 
- import java.lang.*; 
- import java.io.*; 
- import java.math.*; 
-   
- class Ideone 
- { 
- 	//check common interval existence 
- 	public static boolean segmentsOverlap(long l1, long r1, long l2, long r2){ 
- 		//segments [l1, r1], [l2, r2] (segment borders may not be sorted) 
- 		//there is an intersection iff segments are neither located  
- 		//this way [l1, r1] ... [l2, r2] nor this [l2, r2] ... [l1, r1] 
- 		return !(Math- . max(- l2, r2 ) < Math- . min(- l1, r1 ) || Math- . max(- l1, r1 ) < Math- . min(- l2, r2 ));
 
- 	} 
- 	public static int sign(long n){ 
- 		if(n < 0) return -1; 
- 		if(n > 0) return 1; 
- 		return 0; 
- 	} 
- 	public static boolean segmentsIntersect(long A, long tA, long B, long tB, long C, long tC, long D, long tD){ 
- 		//find out the equations of the lines segments lie on 
- 		//if segments intersect, both endpoints of one are located at 
- 		//different half-planes relatively to second line 
- 		//a1*X + b1*tX + c1 == 0	//a2*X + b1*tX + c2 == 0 
- 		long a1 = tA-tB;			long a2 = tC-tD; 
- 		long b1 = B-A;				long b2 = D-C; 
- 		long c1 = A*tB-B*tA;		long c2 = C*tD-D*tC; 
- 		long r1 = a1*C+b1*tC+c1;	long r3 = a2*A+b2*tA+c2; 
- 		long r2 = a1*D+b1*tD+c1;	long r4 = a2*B+b2*tB+c2; 
- 		return sign(r1)*sign(r2) <= 0 && sign(r3)*sign(r4) <= 0; 
- 	} 
- 	{ 
- 		Scanner in  = new-  Scanner (System- . in);
- 		long A = in.nextLong(); long tA = in.nextLong(); 
- 		long B = in.nextLong();	long tB = in.nextLong(); 
- 		long C = in.nextLong(); long tC = in.nextLong(); 
- 		long D = in.nextLong(); long tD = in.nextLong(); 
- 		if(segmentsOverlap(A, B, C, D) == true){ 
- 			//bots dots either lie in different half-planes or 
- 			//at least one of them lies on the segment 
- 			boolean r1 = segmentsIntersect(A, tA, B, tB, C, tC, D, tD);		//[(A,tA), (B,tB)] and [(C, tC), (D, tD)] 
- 			boolean r2 = segmentsIntersect(A, tA, B, tB, C, 0, C, tC);		//[(A,tA), (B,tB)] and [(C, 0), (C, tC)] 
- 			boolean r3 = segmentsIntersect(A, tA, B, tB, D, tD, D, tD+tB);	//[(A,tA), (B,tB)] and [(D, tD), (D, tD+tB)] 
- 			boolean r4 = segmentsIntersect(C, tC, D, tD, A, 0, A, tA);		//[(C,tC), (D,tD)] and [(A, 0), (A, tA)] 
- 			boolean r5 = segmentsIntersect(C, tC, D, tD, B, tB, B, tB+tD);  //[(C,tC), (D,tD)] and [(B, tB), (B, tB+tD)] 
- 			if(r1 || r2 || r3 || r4 || r5) 
- 			else  
- 		} 
- 	} 
- } 
				aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLm1hdGguKjsKCmNsYXNzIElkZW9uZQp7CgkvL2NoZWNrIGNvbW1vbiBpbnRlcnZhbCBleGlzdGVuY2UKCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzZWdtZW50c092ZXJsYXAobG9uZyBsMSwgbG9uZyByMSwgbG9uZyBsMiwgbG9uZyByMil7CgkJLy9zZWdtZW50cyBbbDEsIHIxXSwgW2wyLCByMl0gKHNlZ21lbnQgYm9yZGVycyBtYXkgbm90IGJlIHNvcnRlZCkKCQkvL3RoZXJlIGlzIGFuIGludGVyc2VjdGlvbiBpZmYgc2VnbWVudHMgYXJlIG5laXRoZXIgbG9jYXRlZCAKCQkvL3RoaXMgd2F5IFtsMSwgcjFdIC4uLiBbbDIsIHIyXSBub3IgdGhpcyBbbDIsIHIyXSAuLi4gW2wxLCByMV0KCQlyZXR1cm4gIShNYXRoLm1heChsMiwgcjIpIDwgTWF0aC5taW4obDEsIHIxKSB8fCBNYXRoLm1heChsMSwgcjEpIDwgTWF0aC5taW4obDIsIHIyKSk7Cgl9CglwdWJsaWMgc3RhdGljIGludCBzaWduKGxvbmcgbil7CgkJaWYobiA8IDApIHJldHVybiAtMTsKCQlpZihuID4gMCkgcmV0dXJuIDE7CgkJcmV0dXJuIDA7Cgl9CglwdWJsaWMgc3RhdGljIGJvb2xlYW4gc2VnbWVudHNJbnRlcnNlY3QobG9uZyBBLCBsb25nIHRBLCBsb25nIEIsIGxvbmcgdEIsIGxvbmcgQywgbG9uZyB0QywgbG9uZyBELCBsb25nIHREKXsKCQkvL2ZpbmQgb3V0IHRoZSBlcXVhdGlvbnMgb2YgdGhlIGxpbmVzIHNlZ21lbnRzIGxpZSBvbgoJCS8vaWYgc2VnbWVudHMgaW50ZXJzZWN0LCBib3RoIGVuZHBvaW50cyBvZiBvbmUgYXJlIGxvY2F0ZWQgYXQKCQkvL2RpZmZlcmVudCBoYWxmLXBsYW5lcyByZWxhdGl2ZWx5IHRvIHNlY29uZCBsaW5lCgkJLy9hMSpYICsgYjEqdFggKyBjMSA9PSAwCS8vYTIqWCArIGIxKnRYICsgYzIgPT0gMAoJCWxvbmcgYTEgPSB0QS10QjsJCQlsb25nIGEyID0gdEMtdEQ7CgkJbG9uZyBiMSA9IEItQTsJCQkJbG9uZyBiMiA9IEQtQzsKCQlsb25nIGMxID0gQSp0Qi1CKnRBOwkJbG9uZyBjMiA9IEMqdEQtRCp0QzsKCQlsb25nIHIxID0gYTEqQytiMSp0QytjMTsJbG9uZyByMyA9IGEyKkErYjIqdEErYzI7CgkJbG9uZyByMiA9IGExKkQrYjEqdEQrYzE7CWxvbmcgcjQgPSBhMipCK2IyKnRCK2MyOwoJCXJldHVybiBzaWduKHIxKSpzaWduKHIyKSA8PSAwICYmIHNpZ24ocjMpKnNpZ24ocjQpIDw9IDA7Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlsb25nIEEgPSBpbi5uZXh0TG9uZygpOyBsb25nIHRBID0gaW4ubmV4dExvbmcoKTsKCQlsb25nIEIgPSBpbi5uZXh0TG9uZygpOwlsb25nIHRCID0gaW4ubmV4dExvbmcoKTsKCQlsb25nIEMgPSBpbi5uZXh0TG9uZygpOyBsb25nIHRDID0gaW4ubmV4dExvbmcoKTsKCQlsb25nIEQgPSBpbi5uZXh0TG9uZygpOyBsb25nIHREID0gaW4ubmV4dExvbmcoKTsKCQlpZihzZWdtZW50c092ZXJsYXAoQSwgQiwgQywgRCkgPT0gdHJ1ZSl7CgkJCS8vYm90cyBkb3RzIGVpdGhlciBsaWUgaW4gZGlmZmVyZW50IGhhbGYtcGxhbmVzIG9yCgkJCS8vYXQgbGVhc3Qgb25lIG9mIHRoZW0gbGllcyBvbiB0aGUgc2VnbWVudAoJCQlib29sZWFuIHIxID0gc2VnbWVudHNJbnRlcnNlY3QoQSwgdEEsIEIsIHRCLCBDLCB0QywgRCwgdEQpOwkJLy9bKEEsdEEpLCAoQix0QildIGFuZCBbKEMsIHRDKSwgKEQsIHREKV0KCQkJYm9vbGVhbiByMiA9IHNlZ21lbnRzSW50ZXJzZWN0KEEsIHRBLCBCLCB0QiwgQywgMCwgQywgdEMpOwkJLy9bKEEsdEEpLCAoQix0QildIGFuZCBbKEMsIDApLCAoQywgdEMpXQoJCQlib29sZWFuIHIzID0gc2VnbWVudHNJbnRlcnNlY3QoQSwgdEEsIEIsIHRCLCBELCB0RCwgRCwgdEQrdEIpOwkvL1soQSx0QSksIChCLHRCKV0gYW5kIFsoRCwgdEQpLCAoRCwgdEQrdEIpXQoJCQlib29sZWFuIHI0ID0gc2VnbWVudHNJbnRlcnNlY3QoQywgdEMsIEQsIHRELCBBLCAwLCBBLCB0QSk7CQkvL1soQyx0QyksIChELHREKV0gYW5kIFsoQSwgMCksIChBLCB0QSldCgkJCWJvb2xlYW4gcjUgPSBzZWdtZW50c0ludGVyc2VjdChDLCB0QywgRCwgdEQsIEIsIHRCLCBCLCB0Qit0RCk7ICAvL1soQyx0QyksIChELHREKV0gYW5kIFsoQiwgdEIpLCAoQiwgdEIrdEQpXQoJCQlpZihyMSB8fCByMiB8fCByMyB8fCByNCB8fCByNSkKCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiWWVzIik7CgkJCWVsc2UgCgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIk5vIik7CgkJfQoJfQp9