結果
問題 | No.122 傾向と対策:門松列(その3) |
ユーザー |
👑 |
提出日時 | 2015-01-09 13:37:34 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 59 ms / 5,000 ms |
コード長 | 32,694 bytes |
コンパイル時間 | 1,891 ms |
コンパイル使用メモリ | 130,960 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-12 02:02:48 |
合計ジャッジ時間 | 2,753 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 8 |
ソースコード
import core.thread;import std.conv, std.stdio, std.string;import std.algorithm, std.array, std.bigint, std.container, std.math, std.range, std.regex;// Inputclass EOFException : Throwable { this() { super("EOF"); } }string[] tokens;string readToken() { for (; tokens.empty; ) { tokens = readln.split; if (stdin.eof) throw new EOFException; } auto token = tokens[0]; tokens.popFront; return token; }int readInt() { return to!int(readToken); }long readLong() { return to!long(readToken); }real readReal() { return to!real(readToken); }// chmin/chmaxvoid chmin(T)(ref T t, in T f) { if (t > f) t = f; }void chmax(T)(ref T t, in T f) { if (t < f) t = f; }// Pairstruct Pair(S, T) {S x; T y;int opCmp( const Pair p) const { return (x < p.x) ? -1 : (x > p.x) ? +1 : (y < p.y) ? -1 : (y > p.y) ? +1 : 0; }int opCmp(ref const Pair p) const { return (x < p.x) ? -1 : (x > p.x) ? +1 : (y < p.y) ? -1 : (y > p.y) ? +1 : 0; }string toString() const { return "(" ~ to!string(x) ~ ", " ~ to!string(y) ~ ")"; }}auto pair(S, T)(inout(S) x, inout(T) y) { return Pair!(S, T)(x, y); }// Arrayint binarySearch(T)(in T[] as, in bool delegate(T) test) { int low = -1, upp = as.length; for (; low + 1 < upp; ) { int mid = (low + upp) >> 1; (test(as[mid]) ? low : upp) = mid; } return upp; }int lowerBound(T)(in T[] as, in T val) { return as.binarySearch((T a) { return (a < val); }); }int upperBound(T)(in T[] as, in T val) { return as.binarySearch((T a) { return (a <= val); }); }T[] unique(T)(in T[] as) { T[] bs; foreach (a; as) if (bs.empty || bs[$ - 1] != a) bs ~= a; return bs; }immutable long MO = 10^^9 + 7;immutable long LIM = 20005;long mod(long x) {return x % MO;}/*$a$b$c[a0<=a<=a1][b0<=b<=b1][c0<=c<=c1](1-[a=b])(1-[a=c])(1-[b=c])*/long calc(long a0, long b0, long c0, long a1, long b1, long c1) {long res = 0;if (1 + a0 <= b0 && 1 + b1 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 2 + 2 * b1 - 2 * b0);if (1 + a0 <= b0 && 1 + b1 <= a1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)));if (1 + a0 <= b0 && 1 + c1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && b0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * b0);if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= c1 && c0 <= b0) res = mod(res + 2 - 2 * b0 + 2 * a1);if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b0 * mod(1 + c1 - c0)) + mod(a1 * mod(-1 - c1 + c0)));if (1 + a0 <= c0 && 1 + b1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1) res = mod(res + 2 - 2 * c0 + 2 * b1);if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0);if (1 + a0 <= c0 && 1 + c1 <= a1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)));if (1 + a0 <= c0 && 1 + b0 <= c0 && c0 <= a1 && a1 <= b1 && a1 <= c1) res = mod(res + 2 - 2 * c0 + 2 * a1);if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && b0 <= b1) res = mod(res + -1 + c0 + mod(b1 * mod(-1 + c0)) + mod(b0 * mod(1 - c0)) + mod(a1 * mod(-1 - b1+ b0)));if (1 + b1 <= a1 && b0 <= a0 && c0 <= a0 && a0 <= b1 && b1 <= c1) res = mod(res + 2 + 2 * b1 - 2 * a0);if (1 + b1 <= a1 && b0 <= a0 && a0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(a0 * mod(1 + c1 - c0)));if (1 + c1 <= a1 && 1 + c1 <= b1 && b0 <= a0 && c0 <= a0 && a0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * a0);if (1 + c1 <= a1 && c0 <= a0 && a0 <= c1 && b0 <= b1) res = mod(res + -1 - c1 + mod(b1 * mod(-1 - c1)) + mod(b0 * mod(1 + c1)) + mod(a0 * mod(1 + b1- b0)));if (1 + b0 <= c0 && 1 + c1 <= b1 && a0 <= a1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(a1 * mod(-1 - c1 + c0)) + mod(a0 * mod(1 + c1 - c0)));if (1 + b0 <= c0 && a0 <= a1 && c0 <= b1 && b1 <= c1) res = mod(res + -1 + c0 - b1 + mod(a1 * mod(-1 + c0 - b1)) + mod(a0 * mod(1 - c0 + b1)));if (1 + c1 <= b1 && a0 <= a1 && c0 <= b0 && b0 <= c1) res = mod(res + -1 - c1 + b0 + mod(a1 * mod(-1 - c1 + b0)) + mod(a0 * mod(1 + c1 - b0)));if (b0 <= a0 && c0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= c1) res = mod(res + 2 + 2 * a1 - 2 * a0);if (b0 <= a0 && a0 <= a1 && a1 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(a1 * mod(-1 - c1 + c0)) + mod(a0 * mod(1 + c1 - c0)));if (c0 <= a0 && a0 <= a1 && a1 <= c1 && b0 <= b1) res = mod(res + -1 - b1 + b0 + mod(a1 * mod(-1 - b1 + b0)) + mod(a0 * mod(1 + b1 - b0)));if (a0 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + -1 - b1 + b0 + mod(a1 * mod(-1 - b1 + b0)) + mod(a0 * mod(1 + b1 - b0)));if (a0 <= a1 && b0 <= b1 && c0 <= c1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0)) + mod(a1 * mod(1 + c1 -c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0)))) + mod(a0 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 -c0)))));return res;}/*$a$b$c$d[a0<=a<=a1][b0<=b<=b1][c0<=c<=c1][d0<=d<=d1](1-[a=b])(1-[a=c])(1-[a=d])(1-[b=c])(1-[b=d])(1-[c=d])*/long calc(long a0, long b0, long c0, long d0, long a1, long b1, long c1, long d1) {long res = 0;if (1 + a0 <= b0 && 1 + b1 <= a1 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) +mod(b0 * mod(-1 - d1 + d0)));if (1 + a0 <= b0 && 1 + b1 <= a1 && 1 + c0 <= d0 && b0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(b1 * mod(1 - d0 + c1)) + mod(b0 * mod(-1 + d0 - c1)));if (1 + a0 <= b0 && 1 + b1 <= a1 && 1 + d1 <= c1 && b0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(b1 * mod(1 + d1 - c0)) + mod(b0 * mod(-1 - d1 + c0)));if (1 + a0 <= b0 && 1 + b1 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + -6 - 6 * b1 + 6 * b0);if (1 + a0 <= b0 && 1 + b1 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b1 * mod(2 + 2 * d1 - 2 *d0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + a0 <= b0 && 1 + b1 <= a1 && d0 <= b0 && b0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b1 * mod(2 + 2 * c1 - 2 *c0)) + mod(b0 * mod(-2 - 2 * c1 + 2 * c0)));if (1 + a0 <= b0 && 1 + b1 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 *mod(-1 - c1 + c0)));if (1 + a0 <= b0 && 1 + b1 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 +d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 +d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))));if (1 + a0 <= b0 && 1 + c1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && d0 <= b0 && b0 <= c1 && c1 <= d1) res = mod(res + -6 - 6 * c1 + 6 * b0);if (1 + a0 <= b0 && 1 + c1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && b0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 * d1 -2 * d0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + a0 <= b0 && 1 + d1 <= a1 && 1 + d1 <= b1 && 1 + d1 <= c1 && c0 <= b0 && d0 <= b0 && b0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * b0);if (1 + a0 <= b0 && 1 + d1 <= a1 && 1 + d1 <= b1 && d0 <= b0 && b0 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * d1 + mod(c1 * mod(2 + 2 * d1)) + mod(c0* mod(-2 - 2 * d1)) + mod(b0 * mod(-2 - 2 * c1 + 2 * c0)));if (1 + a0 <= b0 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= a1 && a1 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b0 * mod(-1 - d1 + d0)) + mod(a1 * mod(1 + d1 - d0)));if (1 + a0 <= b0 && 1 + c0 <= d0 && b0 <= a1 && a1 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(b0 * mod(-1 + d0 - c1)) + mod(a1* mod(1 - d0 + c1)));if (1 + a0 <= b0 && 1 + d1 <= c1 && b0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(b0 * mod(-1 - d1 + c0)) + mod(a1* mod(1 + d1 - c0)));if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1 && c0 <= b0 && d0 <= b0) res = mod(res + -6 + 6 * b0 - 6 * a1);if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= c1 && c0 <= b0 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b0 * mod(-2 - 2 * d1 + 2 * d0)) + mod(a1 * mod(2 + 2 * d1 - 2 * d0)));if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && a1 <= d1 && d0 <= b0 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b0 * mod(-2 - 2 * c1 + 2 * c0)) + mod(a1 * mod(2 + 2 * c1 - 2 * c0)));if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(b0 * mod(-1 - c1 + c0)) + mod(a1 *mod(1 + c1 - c0)));if (1 + a0 <= b0 && b0 <= a1 && a1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 -d0)) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 +d0)) + mod(c0 * mod(1 + d1 - d0)))));if (1 + a0 <= c0 && 1 + b1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1 && b1 <= d1 && d0 <= c0) res = mod(res + -6 + 6 * c0 - 6 * b1);if (1 + a0 <= c0 && 1 + b1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c0 * mod(-2 - 2 * d1+ 2 * d0)) + mod(b1 * mod(2 + 2 * d1 - 2 * d0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + -6 - 6 * c1 + 6 * c0);if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 *d1 - 2 * d0)) + mod(c0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) +mod(c0 * mod(-1 - d1 + d0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + b0 <= d0 && d0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 + c1 - c0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && 1 + d1 <= b1 && d0 <= b0 && b0 <= d1 && c0 <= c1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)) + mod(b0 * mod(-1 - c1 + c0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && d0 <= b0 && b0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 *mod(-1 - c1 + c0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b1 * mod(2 + 2 * c1 - 2 *c0)) + mod(b0 * mod(-2 - 2 * c1 + 2 * c0)));if (1 + a0 <= c0 && 1 + c1 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 +d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 +d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))));if (1 + a0 <= c0 && 1 + d1 <= a1 && 1 + b0 <= c0 && 1 + d1 <= b1 && 1 + d1 <= c1 && d0 <= c0 && c0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * c0);if (1 + a0 <= c0 && 1 + d1 <= a1 && 1 + d1 <= c1 && b0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * c0 + mod(b1 * mod(2 + 2 * d1 -2 * c0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * c0)));if (1 + a0 <= c0 && 1 + b0 <= c0 && c0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1 && d0 <= c0) res = mod(res + -6 + 6 * c0 - 6 * a1);if (1 + a0 <= c0 && 1 + b0 <= c0 && c0 <= a1 && a1 <= b1 && a1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c0 * mod(-2 - 2 * d1 + 2* d0)) + mod(a1 * mod(2 + 2 * d1 - 2 * d0)));if (1 + a0 <= c0 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= a1 && a1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)) + mod(a1 * mod(1 + d1 - d0)));if (1 + a0 <= c0 && 1 + b0 <= d0 && c0 <= a1 && a1 <= c1 && d0 <= b1 && b1 <= d1) res = mod(res + 1 - d0 + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 -c0)) + mod(a1 * mod(1 - d0 + b1)));if (1 + a0 <= c0 && 1 + d1 <= b1 && c0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= d1) res = mod(res + 1 + d1 + mod(c0 * mod(-1 - d1)) + mod(b0 * mod(-1 +c0)) + mod(a1 * mod(1 + d1 - b0)));if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && a1 <= d1 && b0 <= b1 && d0 <= c0) res = mod(res + 2 - 2 * c0 + mod(b1 * mod(2 - 2 * c0)) + mod(b0 * mod(-2 + 2 * c0)) + mod(a1 * mod(2 + 2 * b1 - 2 * b0)));if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= b1 && b1 <= d1) res = mod(res + 1 - c0 + mod(b1 * mod(1 - c0)) + mod(b0 * mod(-1 + c0))+ mod(a1 * mod(1 + b1 - b0)));if (1 + a0 <= c0 && c0 <= a1 && a1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 +d0 + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)))) + mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 +d0)) + mod(b0 * mod(1 + d1 - d0)))));if (1 + a0 <= d0 && 1 + b1 <= a1 && 1 + b0 <= d0 && 1 + c0 <= d0 && d0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + -6 + 6 * d0 - 6 * b1);if (1 + a0 <= d0 && 1 + b1 <= a1 && 1 + b0 <= d0 && d0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 2 - 2 * d0 + mod(c1 * mod(2 - 2 * d0)) + mod(c0* mod(-2 + 2 * d0)) + mod(b1 * mod(2 + 2 * c1 - 2 * c0)));if (1 + a0 <= d0 && 1 + c1 <= a1 && 1 + b0 <= d0 && 1 + c1 <= b1 && 1 + c0 <= d0 && d0 <= c1 && c1 <= d1) res = mod(res + -6 + 6 * d0 - 6 * c1);if (1 + a0 <= d0 && 1 + c1 <= a1 && 1 + c0 <= d0 && b0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 2 - 2 * d0 + 2 * c1 + mod(b1 * mod(2 - 2 * d0 +2 * c1)) + mod(b0 * mod(-2 + 2 * d0 - 2 * c1)));if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) +mod(c0 * mod(-1 - d1 + d0)));if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= c0 && c0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 * mod(1 + d1 - d0)));if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && 1 + c0 <= d0 && 1 + d1 <= c1 && d0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * d0);if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 *d1 - 2 * d0)) + mod(c0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + c1 <= b1 && c0 <= b0 && b0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(b0 * mod(-1 - d1 + d0)));if (1 + a0 <= d0 && 1 + d1 <= a1 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b1 * mod(2 + 2 *d1 - 2 * d0)) + mod(b0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + a0 <= d0 && 1 + d1 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(b0 *mod(-1 - d1 + d0)));if (1 + a0 <= d0 && 1 + d1 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 +d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 +d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))));if (1 + a0 <= d0 && 1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= a1 && a1 <= d1 && c0 <= c1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)) + mod(a1 * mod(1 + c1 - c0)));if (1 + a0 <= d0 && 1 + b0 <= c0 && d0 <= a1 && a1 <= d1 && c0 <= b1 && b1 <= c1) res = mod(res + 1 - d0 + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 -d0)) + mod(a1 * mod(1 - c0 + b1)));if (1 + a0 <= d0 && 1 + b0 <= d0 && 1 + c0 <= d0 && d0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1) res = mod(res + -6 + 6 * d0 - 6 * a1);if (1 + a0 <= d0 && 1 + b0 <= d0 && d0 <= a1 && a1 <= b1 && a1 <= d1 && c0 <= c1) res = mod(res + 2 - 2 * d0 + mod(c1 * mod(2 - 2 * d0)) + mod(c0 *mod(-2 + 2 * d0)) + mod(a1 * mod(2 + 2 * c1 - 2 * c0)));if (1 + a0 <= d0 && 1 + c1 <= b1 && d0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= c1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(b0 * mod(-1 +d0)) + mod(a1 * mod(1 + c1 - b0)));if (1 + a0 <= d0 && 1 + c0 <= d0 && d0 <= a1 && a1 <= c1 && a1 <= d1 && b0 <= b1) res = mod(res + 2 - 2 * d0 + mod(b1 * mod(2 - 2 * d0)) + mod(b0 *mod(-2 + 2 * d0)) + mod(a1 * mod(2 + 2 * b1 - 2 * b0)));if (1 + a0 <= d0 && d0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 1 - d0 + mod(b1 * mod(1 - d0)) + mod(b0 * mod(-1 + d0))+ mod(a1 * mod(1 + b1 - b0)));if (1 + a0 <= d0 && d0 <= a1 && a1 <= d1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)) + mod(b1 *mod(-1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)))) + mod(b0 * mod(1 - d0 + mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)))) + mod(a1* mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))));if (1 + b1 <= a1 && 1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= a0 && a0 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0)) + mod(a0 * mod(-1 - d1 + d0)));if (1 + b1 <= a1 && 1 + c0 <= d0 && b0 <= a0 && a0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(b1 * mod(1 - d0 + c1)) + mod(a0 *mod(-1 + d0 - c1)));if (1 + b1 <= a1 && 1 + d1 <= c1 && b0 <= a0 && a0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(b1 * mod(1 + d1 - c0)) + mod(a0 *mod(-1 - d1 + c0)));if (1 + b1 <= a1 && b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + -6 - 6 * b1 + 6 * a0);if (1 + b1 <= a1 && b0 <= a0 && c0 <= a0 && a0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(b1 * mod(2 + 2 * d1 - 2 * d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + b1 <= a1 && b0 <= a0 && d0 <= a0 && a0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(b1 * mod(2 + 2 * c1 - 2 * c0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0)));if (1 + b1 <= a1 && b0 <= a0 && a0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(a0 * mod(-1 - c1 + c0)));if (1 + b1 <= a1 && b0 <= a0 && a0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 -d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 -d0)) + mod(c0 * mod(-1 - d1 + d0)))));if (1 + c1 <= a1 && 1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= a0 && a0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(a0 * mod(-1 - d1 + d0)));if (1 + c1 <= a1 && 1 + b0 <= d0 && c0 <= a0 && a0 <= c1 && d0 <= b1 && b1 <= d1) res = mod(res + 1 - d0 + mod(c1 * mod(1 - d0)) + mod(b1 * mod(1 +c1)) + mod(a0 * mod(-1 + d0 - b1)));if (1 + c1 <= a1 && 1 + c1 <= b1 && b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= c1 && c1 <= d1) res = mod(res + -6 - 6 * c1 + 6 * a0);if (1 + c1 <= a1 && 1 + c1 <= b1 && b0 <= a0 && c0 <= a0 && a0 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(c1 * mod(2 + 2 * d1 - 2 *d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + c1 <= a1 && 1 + d1 <= b1 && c0 <= a0 && a0 <= c1 && d0 <= b0 && b0 <= d1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(b0 * mod(-1 -c1)) + mod(a0 * mod(-1 - d1 + b0)));if (1 + c1 <= a1 && c0 <= a0 && d0 <= a0 && a0 <= c1 && b0 <= b1 && c1 <= d1) res = mod(res + 2 + 2 * c1 + mod(b1 * mod(2 + 2 * c1)) + mod(b0 * mod(-2 - 2 * c1)) + mod(a0 * mod(-2 - 2 * b1 + 2 * b0)));if (1 + c1 <= a1 && c0 <= a0 && a0 <= c1 && d0 <= b0 && b0 <= b1 && b1 <= d1) res = mod(res + 1 + c1 + mod(b1 * mod(1 + c1)) + mod(b0 * mod(-1 - c1))+ mod(a0 * mod(-1 - b1 + b0)));if (1 + c1 <= a1 && c0 <= a0 && a0 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(b1 * mod(-1 - d1 +d0 + mod(c1 * mod(-1 - d1 + d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 -d0)) + mod(b0 * mod(-1 - d1 + d0)))));if (1 + d1 <= a1 && 1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= a0 && a0 <= d1 && c0 <= c1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)) + mod(a0 * mod(-1 - c1 + c0)));if (1 + d1 <= a1 && 1 + b0 <= c0 && d0 <= a0 && a0 <= d1 && c0 <= b1 && b1 <= c1) res = mod(res + 1 + d1 + mod(c0 * mod(-1 - d1)) + mod(b1 * mod(1 +d1)) + mod(a0 * mod(-1 + c0 - b1)));if (1 + d1 <= a1 && 1 + c1 <= b1 && d0 <= a0 && a0 <= d1 && c0 <= b0 && b0 <= c1) res = mod(res + 1 + d1 + mod(c1 * mod(1 + d1)) + mod(b0 * mod(-1 -d1)) + mod(a0 * mod(-1 - c1 + b0)));if (1 + d1 <= a1 && 1 + d1 <= b1 && 1 + d1 <= c1 && b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= d1) res = mod(res + -6 - 6 * d1 + 6 * a0);if (1 + d1 <= a1 && 1 + d1 <= b1 && b0 <= a0 && d0 <= a0 && a0 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * d1 + mod(c1 * mod(2 + 2 * d1)) + mod(c0 *mod(-2 - 2 * d1)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0)));if (1 + d1 <= a1 && 1 + d1 <= c1 && c0 <= a0 && d0 <= a0 && a0 <= d1 && b0 <= b1) res = mod(res + 2 + 2 * d1 + mod(b1 * mod(2 + 2 * d1)) + mod(b0 *mod(-2 - 2 * d1)) + mod(a0 * mod(-2 - 2 * b1 + 2 * b0)));if (1 + d1 <= a1 && d0 <= a0 && a0 <= d1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 1 + d1 + mod(b1 * mod(1 + d1)) + mod(b0 * mod(-1 - d1))+ mod(a0 * mod(-1 - b1 + b0)));if (1 + d1 <= a1 && d0 <= a0 && a0 <= d1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)) + mod(b1 *mod(-1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)))) + mod(b0 * mod(1 + d1 + mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)))) + mod(a0* mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0)) + mod(b0 * mod(-1 - c1 + c0)))));if (1 + b0 <= c0 && 1 + c1 <= b1 && d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= c1) res = mod(res + 1 + c1 - c0 + mod(a1 * mod(1 + c1 - c0)) + mod(a0 *mod(-1 - c1 + c0)));if (1 + b0 <= c0 && 1 + c1 <= b1 && a0 <= a1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(a1 * mod(2 + 2 * c1 - 2 *c0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * c0)));if (1 + b0 <= c0 && 1 + c1 <= b1 && a0 <= a1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 +d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 +d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))));if (1 + b0 <= c0 && 1 + d1 <= b1 && 1 + d1 <= c1 && a0 <= a1 && d0 <= c0 && c0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * c0 + mod(a1 * mod(2 + 2 * d1 -2 * c0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * c0)));if (1 + b0 <= c0 && d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= b1 && b1 <= c1) res = mod(res + 1 - c0 + b1 + mod(a1 * mod(1 - c0 + b1)) + mod(a0 * mod(-1 + c0 - b1)));if (1 + b0 <= c0 && a0 <= a1 && c0 <= b1 && b1 <= c1 && b1 <= d1 && d0 <= c0) res = mod(res + 2 - 2 * c0 + 2 * b1 + mod(a1 * mod(2 - 2 * c0 + 2 * b1)) + mod(a0 * mod(-2 + 2 * c0 - 2 * b1)));if (1 + b0 <= c0 && a0 <= a1 && c0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 +d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c0 * mod(-1 - d1 +d0)) + mod(b1 * mod(1 + d1 - d0)))));if (1 + b0 <= d0 && 1 + c1 <= b1 && 1 + c0 <= d0 && a0 <= a1 && d0 <= c1 && c1 <= d1) res = mod(res + 2 - 2 * d0 + 2 * c1 + mod(a1 * mod(2 - 2 * d0 +2 * c1)) + mod(a0 * mod(-2 + 2 * d0 - 2 * c1)));if (1 + b0 <= d0 && 1 + d1 <= b1 && 1 + c0 <= d0 && 1 + d1 <= c1 && a0 <= a1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(a1 * mod(2 + 2 *d1 - 2 * d0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * d0)));if (1 + b0 <= d0 && 1 + d1 <= b1 && c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(a1 * mod(1 + d1 - d0)) + mod(a0 *mod(-1 - d1 + d0)));if (1 + b0 <= d0 && 1 + d1 <= b1 && a0 <= a1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 +d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 +d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))));if (1 + b0 <= d0 && 1 + c0 <= d0 && a0 <= a1 && d0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + 2 - 2 * d0 + 2 * b1 + mod(a1 * mod(2 - 2 * d0 + 2 *b1)) + mod(a0 * mod(-2 + 2 * d0 - 2 * b1)));if (1 + b0 <= d0 && c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= b1 && b1 <= d1) res = mod(res + 1 - d0 + b1 + mod(a1 * mod(1 - d0 + b1)) + mod(a0 * mod(-1 + d0 - b1)));if (1 + b0 <= d0 && a0 <= a1 && d0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + -1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)) + mod(b1 *mod(-1 - c1 + c0)) + mod(a1 * mod(-1 + d0 + mod(c1 * mod(-1 + d0)) + mod(c0 * mod(1 - d0)) + mod(b1 * mod(-1 - c1 + c0)))) + mod(a0 * mod(1 - d0+ mod(c1 * mod(1 - d0)) + mod(c0 * mod(-1 + d0)) + mod(b1 * mod(1 + c1 - c0)))));if (1 + c1 <= b1 && d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= c1) res = mod(res + 1 + c1 - b0 + mod(a1 * mod(1 + c1 - b0)) + mod(a0 * mod(-1 - c1 + b0)));if (1 + c1 <= b1 && a0 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= c1 && c1 <= d1) res = mod(res + 2 + 2 * c1 - 2 * b0 + mod(a1 * mod(2 + 2 * c1 - 2 * b0)) + mod(a0 * mod(-2 - 2 * c1 + 2 * b0)));if (1 + c1 <= b1 && a0 <= a1 && c0 <= b0 && b0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 -d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 -d0)) + mod(b0 * mod(-1 - d1 + d0)))));if (1 + d1 <= b1 && 1 + d1 <= c1 && a0 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * b0 + mod(a1 * mod(2 + 2 * d1 - 2 *b0)) + mod(a0 * mod(-2 - 2 * d1 + 2 * b0)));if (1 + d1 <= b1 && c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= d1) res = mod(res + 1 + d1 - b0 + mod(a1 * mod(1 + d1 - b0)) + mod(a0 * mod(-1 - d1 + b0)));if (1 + d1 <= b1 && a0 <= a1 && d0 <= b0 && b0 <= d1 && c0 <= c1) res = mod(res + -1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)) + mod(b0 *mod(1 + c1 - c0)) + mod(a1 * mod(-1 - d1 + mod(c1 * mod(-1 - d1)) + mod(c0 * mod(1 + d1)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + d1 +mod(c1 * mod(1 + d1)) + mod(c0 * mod(-1 - d1)) + mod(b0 * mod(-1 - c1 + c0)))));if (1 + c0 <= d0 && 1 + d1 <= c1 && b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(a1 * mod(1 + d1 - d0)) + mod(a0 *mod(-1 - d1 + d0)));if (1 + c0 <= d0 && 1 + d1 <= c1 && a0 <= a1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 +d1 - d0)) + mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 +d1 - d0)) + mod(b0 * mod(-1 - d1 + d0)))));if (1 + c0 <= d0 && b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + 1 - d0 + c1 + mod(a1 * mod(1 - d0 + c1)) + mod(a0 * mod(-1 + d0 - c1)));if (1 + c0 <= d0 && a0 <= a1 && b0 <= b1 && d0 <= c1 && c1 <= d1) res = mod(res + -1 + d0 - c1 + mod(b1 * mod(-1 + d0 - c1)) + mod(b0 * mod(1 - d0 +c1)) + mod(a1 * mod(-1 + d0 - c1 + mod(b1 * mod(-1 + d0 - c1)) + mod(b0 * mod(1 - d0 + c1)))) + mod(a0 * mod(1 - d0 + c1 + mod(b1 * mod(1 - d0 +c1)) + mod(b0 * mod(-1 + d0 - c1)))));if (1 + d1 <= c1 && b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + 1 + d1 - c0 + mod(a1 * mod(1 + d1 - c0)) + mod(a0 * mod(-1 - d1 + c0)));if (1 + d1 <= c1 && a0 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= d1) res = mod(res + -1 - d1 + c0 + mod(b1 * mod(-1 - d1 + c0)) + mod(b0 * mod(1 + d1 -c0)) + mod(a1 * mod(-1 - d1 + c0 + mod(b1 * mod(-1 - d1 + c0)) + mod(b0 * mod(1 + d1 - c0)))) + mod(a0 * mod(1 + d1 - c0 + mod(b1 * mod(1 + d1 -c0)) + mod(b0 * mod(-1 - d1 + c0)))));if (b0 <= a0 && c0 <= a0 && d0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= c1 && a1 <= d1) res = mod(res + -6 - 6 * a1 + 6 * a0);if (b0 <= a0 && c0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= c1 && d0 <= d1) res = mod(res + 2 + 2 * d1 - 2 * d0 + mod(a1 * mod(2 + 2 * d1 - 2 * d0)) +mod(a0 * mod(-2 - 2 * d1 + 2 * d0)));if (b0 <= a0 && d0 <= a0 && a0 <= a1 && a1 <= b1 && a1 <= d1 && c0 <= c1) res = mod(res + 2 + 2 * c1 - 2 * c0 + mod(a1 * mod(2 + 2 * c1 - 2 * c0)) +mod(a0 * mod(-2 - 2 * c1 + 2 * c0)));if (b0 <= a0 && a0 <= a1 && a1 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + 1 + c1 - c0 + mod(a1 * mod(1 + c1 - c0)) + mod(a0 * mod(-1- c1 + c0)));if (b0 <= a0 && a0 <= a1 && a1 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0))+ mod(a1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0))+ mod(c0 * mod(-1 - d1 + d0)))));if (c0 <= a0 && d0 <= a0 && a0 <= a1 && a1 <= c1 && a1 <= d1 && b0 <= b1) res = mod(res + 2 + 2 * b1 - 2 * b0 + mod(a1 * mod(2 + 2 * b1 - 2 * b0)) +mod(a0 * mod(-2 - 2 * b1 + 2 * b0)));if (c0 <= a0 && a0 <= a1 && a1 <= c1 && d0 <= b0 && b0 <= b1 && b1 <= d1) res = mod(res + 1 + b1 - b0 + mod(a1 * mod(1 + b1 - b0)) + mod(a0 * mod(-1- b1 + b0)));if (c0 <= a0 && a0 <= a1 && a1 <= c1 && b0 <= b1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0))+ mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0))+ mod(b0 * mod(-1 - d1 + d0)))));if (d0 <= a0 && a0 <= a1 && a1 <= d1 && c0 <= b0 && b0 <= b1 && b1 <= c1) res = mod(res + 1 + b1 - b0 + mod(a1 * mod(1 + b1 - b0)) + mod(a0 * mod(-1- b1 + b0)));if (d0 <= a0 && a0 <= a1 && a1 <= d1 && b0 <= b1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))+ mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0))+ mod(b0 * mod(-1 - c1 + c0)))));if (a0 <= a1 && c0 <= b0 && d0 <= b0 && b0 <= b1 && b1 <= c1 && b1 <= d1) res = mod(res + 2 + 2 * b1 - 2 * b0 + mod(a1 * mod(2 + 2 * b1 - 2 * b0)) +mod(a0 * mod(-2 - 2 * b1 + 2 * b0)));if (a0 <= a1 && c0 <= b0 && b0 <= b1 && b1 <= c1 && d0 <= d1) res = mod(res + -1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0))+ mod(a1 * mod(-1 - d1 + d0 + mod(b1 * mod(-1 - d1 + d0)) + mod(b0 * mod(1 + d1 - d0)))) + mod(a0 * mod(1 + d1 - d0 + mod(b1 * mod(1 + d1 - d0))+ mod(b0 * mod(-1 - d1 + d0)))));if (a0 <= a1 && d0 <= b0 && b0 <= b1 && b1 <= d1 && c0 <= c1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))+ mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0))+ mod(b0 * mod(-1 - c1 + c0)))));if (a0 <= a1 && b0 <= b1 && d0 <= c0 && c0 <= c1 && c1 <= d1) res = mod(res + -1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0))+ mod(a1 * mod(-1 - c1 + c0 + mod(b1 * mod(-1 - c1 + c0)) + mod(b0 * mod(1 + c1 - c0)))) + mod(a0 * mod(1 + c1 - c0 + mod(b1 * mod(1 + c1 - c0))+ mod(b0 * mod(-1 - c1 + c0)))));if (a0 <= a1 && b0 <= b1 && c0 <= c1 && d0 <= d1) res = mod(res + 1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 *mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))) + mod(b0 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 *mod(1 + d1 - d0)))) + mod(a1 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)) + mod(b1 * mod(1 + d1 - d0 + mod(c1 *mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))) + mod(b0 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)))))) +mod(a0 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) + mod(c0 * mod(1 + d1 - d0)) + mod(b1 * mod(-1 - d1 + d0 + mod(c1 * mod(-1 - d1 + d0)) +mod(c0 * mod(1 + d1 - d0)))) + mod(b0 * mod(1 + d1 - d0 + mod(c1 * mod(1 + d1 - d0)) + mod(c0 * mod(-1 - d1 + d0)))))));return res;}long[7] A, B;void main(string[] args) {try {for (; ; ) {foreach (i; 0 .. 7) {A[i] = readLong;B[i] = readLong;}long ans;foreach (phase; 0 .. 2) {foreach (x; -LIM .. +LIM) {// max(0,2,4,6) = x// 1,3,5 >= x + 1const res0 = calc(A[0], A[2], A[4], A[6],min(B[0], x), min(B[2], x), min(B[4], x), min(B[6], x));const res1 = calc(A[0], A[2], A[4], A[6],min(B[0], x - 1), min(B[2], x - 1), min(B[4], x - 1), min(B[6], x - 1));const res2 = calc(max(A[1], x + 1), max(A[3], x + 1), max(A[5], x + 1),B[1], B[3], B[5]);(ans += (res0 - res1) * res2) %= MO;}A[] *= -1;B[] *= -1;swap(A, B);}ans = (ans % MO + MO) % MO;writeln(ans);// break;}} catch (EOFException) {}}