import java.math.BigDecimal ;
import java.math.BigInteger ;
import java.util.ArrayList ;
import java.util.Scanner ;
class RysunkiBajtelka
{
public static void main
( String [ ] args
) {
Scanner in
= new Scanner
( System .
in ) ; ArrayList< Long> x1 = new ArrayList<> ( ) ;
ArrayList< Long> y1 = new ArrayList<> ( ) ;
ArrayList< Long> x2 = new ArrayList<> ( ) ;
ArrayList< Long> y2 = new ArrayList<> ( ) ;
{
x1.add ( in.nextLong ( ) ) ;
y1.add ( in.nextLong ( ) ) ;
do
{
x1.add ( in.nextLong ( ) ) ;
y1.add ( in.nextLong ( ) ) ;
}
while ( x1.get ( 0 ) != x1.get ( x1.size ( ) - 1 ) || y1.get ( 0 ) != y1.get ( y1.size ( ) - 1 ) ) ;
x2.add ( in.nextLong ( ) ) ;
y2.add ( in.nextLong ( ) ) ;
do
{
x2.add ( in.nextLong ( ) ) ;
y2.add ( in.nextLong ( ) ) ;
}
while ( x2.get ( 0 ) != x2.get ( x2.size ( ) - 1 ) || y2.get ( 0 ) != y2.get ( y2.size ( ) - 1 ) ) ;
x1.clear ( ) ;
y1.clear ( ) ;
x2.clear ( ) ;
y2.clear ( ) ;
}
}
public static BigDecimal calculateArea
( ArrayList
< Long
> x, ArrayList
< Long
> y
) {
for ( int i = 0 ; i < ( x.size ( ) - 1 ) ; i++ )
result
= result.
add ( BigDecimal .
valueOf ( x.
get ( i
) * y.
get ( i
+ 1 ) - x.
get ( i
+ 1 ) * y.
get ( i
) ) ) ; }
}
aW1wb3J0IGphdmEubWF0aC5CaWdEZWNpbWFsOwppbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CmltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwppbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7CgpjbGFzcyBSeXN1bmtpQmFqdGVsa2EKewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgIHsKICAgICAgICBTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICBCaWdJbnRlZ2VyIG4gPSBpbi5uZXh0QmlnSW50ZWdlcigpOwogICAgICAgIEFycmF5TGlzdDxMb25nPiB4MSA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgICAgIEFycmF5TGlzdDxMb25nPiB5MSA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgICAgIEFycmF5TGlzdDxMb25nPiB4MiA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgICAgIEFycmF5TGlzdDxMb25nPiB5MiA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgICAgIGZvciAoQmlnSW50ZWdlciBpID0gQmlnSW50ZWdlci5aRVJPOyBpLmNvbXBhcmVUbyhuKSA8IDA7IGkgPSBpLmFkZChCaWdJbnRlZ2VyLk9ORSkpCiAgICAgICAgewogICAgICAgICAgICB4MS5hZGQoaW4ubmV4dExvbmcoKSk7CiAgICAgICAgICAgIHkxLmFkZChpbi5uZXh0TG9uZygpKTsKICAgICAgICAgICAgZG8KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgeDEuYWRkKGluLm5leHRMb25nKCkpOwogICAgICAgICAgICAgICAgeTEuYWRkKGluLm5leHRMb25nKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlICh4MS5nZXQoMCkgIT0geDEuZ2V0KHgxLnNpemUoKSAtIDEpIHx8IHkxLmdldCgwKSAhPSB5MS5nZXQoeTEuc2l6ZSgpIC0gMSkpOwogICAgICAgICAgICB4Mi5hZGQoaW4ubmV4dExvbmcoKSk7CiAgICAgICAgICAgIHkyLmFkZChpbi5uZXh0TG9uZygpKTsKICAgICAgICAgICAgZG8KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgeDIuYWRkKGluLm5leHRMb25nKCkpOwogICAgICAgICAgICAgICAgeTIuYWRkKGluLm5leHRMb25nKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlICh4Mi5nZXQoMCkgIT0geDIuZ2V0KHgyLnNpemUoKSAtIDEpIHx8IHkyLmdldCgwKSAhPSB5Mi5nZXQoeTIuc2l6ZSgpIC0gMSkpOwogICAgICAgICAgICBCaWdEZWNpbWFsIGJsYWNrQXJlYSA9IGNhbGN1bGF0ZUFyZWEoeDEsIHkxKTsKICAgICAgICAgICAgQmlnRGVjaW1hbCBncmF5QXJlYSA9IGNhbGN1bGF0ZUFyZWEoeDIsIHkyKTsKICAgICAgICAgICAgQmlnRGVjaW1hbCB0ZW1wID0gYmxhY2tBcmVhLm11bHRpcGx5KEJpZ0RlY2ltYWwuVEVOKS5hZGQoZ3JheUFyZWEuc3VidHJhY3QoYmxhY2tBcmVhKS5tdWx0aXBseShCaWdEZWNpbWFsLnZhbHVlT2YoNikpKTsKICAgICAgICAgICAgQmlnSW50ZWdlciBhbnN3ZXIgPSB0ZW1wLnRvQmlnSW50ZWdlcigpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYW5zd2VyKTsKICAgICAgICAgICAgeDEuY2xlYXIoKTsKICAgICAgICAgICAgeTEuY2xlYXIoKTsKICAgICAgICAgICAgeDIuY2xlYXIoKTsKICAgICAgICAgICAgeTIuY2xlYXIoKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIGNhbGN1bGF0ZUFyZWEoQXJyYXlMaXN0PExvbmc+IHgsIEFycmF5TGlzdDxMb25nPiB5KQogICAgewogICAgICAgIEJpZ0RlY2ltYWwgcmVzdWx0ID0gQmlnRGVjaW1hbC5aRVJPOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKHguc2l6ZSgpIC0gMSk7IGkrKykKICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFkZChCaWdEZWNpbWFsLnZhbHVlT2YoeC5nZXQoaSkgKiB5LmdldChpICsgMSkgLSB4LmdldChpICsgMSkgKiB5LmdldChpKSkpOwogICAgICAgIHJldHVybiByZXN1bHQuZGl2aWRlKEJpZ0RlY2ltYWwudmFsdWVPZigyKSk7CiAgICB9Cn0=