Require Import ords ssrfun ssrbool ssreflect.
Require Import Arith.

(* pg32_inductive.v: #points = 15, #lines = 35 *)

Inductive Point :=
| P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12 | P13 | P14 .

Inductive Line :=
| L0 | L1 | L2 | L3 | L4 | L5 | L6 | L7 | L8 | L9 | L10 | L11 | L12 | L13 | L14 | L15 | L16 | L17 | L18 | L19 | L20 | L21 | L22 | L23 | L24 | L25 | L26 | L27 | L28 | L29 | L30 | L31 | L32 | L33 | L34 .

Definition L2nat (l:Line) : nat := match l with
| L0 => 0%nat
| L1 => 1%nat
| L2 => 2%nat
| L3 => 3%nat
| L4 => 4%nat
| L5 => 5%nat
| L6 => 6%nat
| L7 => 7%nat
| L8 => 8%nat
| L9 => 9%nat
| L10 => 10%nat
| L11 => 11%nat
| L12 => 12%nat
| L13 => 13%nat
| L14 => 14%nat
| L15 => 15%nat
| L16 => 16%nat
| L17 => 17%nat
| L18 => 18%nat
| L19 => 19%nat
| L20 => 20%nat
| L21 => 21%nat
| L22 => 22%nat
| L23 => 23%nat
| L24 => 24%nat
| L25 => 25%nat
| L26 => 26%nat
| L27 => 27%nat
| L28 => 28%nat
| L29 => 29%nat
| L30 => 30%nat
| L31 => 31%nat
| L32 => 32%nat
| L33 => 33%nat
| L34 => 34%nat
end.

Definition eqL (x y:Line) : bool := Nat.eqb (L2nat x) (L2nat y).

Definition leL (x y: Line) : bool := leb (L2nat x) (L2nat y).

Lemma leL_total : forall A B, (leL A B) || (leL B A).
Set Printing All.
Proof.
intros A B; apply Bool.orb_true_iff;
destruct (le_ge_dec (L2nat A) (L2nat B));
  [left; apply leb_correct; assumption |
right; apply leb_correct; unfold ge in *; assumption].
Qed.

Definition P2nat (p:Point) : nat := match p with
| P0 => 0%nat
| P1 => 1%nat
| P2 => 2%nat
| P3 => 3%nat
| P4 => 4%nat
| P5 => 5%nat
| P6 => 6%nat
| P7 => 7%nat
| P8 => 8%nat
| P9 => 9%nat
| P10 => 10%nat
| P11 => 11%nat
| P12 => 12%nat
| P13 => 13%nat
| P14 => 14%nat
end.

Definition eqP (x y:Point)  : bool := Nat.eqb (P2nat x) (P2nat y).

Definition leP (x y: Point) : bool := leb (P2nat x) (P2nat y).
Lemma leP_total : forall A B, leP A B || leP B A.
Proof.
intros A B; apply Bool.orb_true_iff;
destruct (le_ge_dec (P2nat A) (P2nat B));
  [left; apply leb_correct; assumption |
right; apply leb_correct; unfold ge in *; assumption].
Qed.

Definition incid_lp (p:Point) (l:Line) (* Point Line *) : bool :=
match l with
| L0 => match p with P0 | P1 | P2 => true | _ => false end
| L1 => match p with P0 | P3 | P4 => true | _ => false end
| L2 => match p with P0 | P5 | P6 => true | _ => false end
| L3 => match p with P0 | P7 | P8 => true | _ => false end
| L4 => match p with P0 | P10 | P9 => true | _ => false end
| L5 => match p with P0 | P11 | P12 => true | _ => false end
| L6 => match p with P0 | P13 | P14 => true | _ => false end
| L7 => match p with P1 | P4 | P6 => true | _ => false end
| L8 => match p with P1 | P8 | P10 => true | _ => false end
| L9 => match p with P1 | P12 | P14 => true | _ => false end
| L10 => match p with P1 | P7 | P9 => true | _ => false end
| L11 => match p with P1 | P13 | P11 => true | _ => false end
| L12 => match p with P1 | P3 | P5 => true | _ => false end
| L13 => match p with P2 | P7 | P10 => true | _ => false end
| L14 => match p with P2 | P11 | P14 => true | _ => false end
| L15 => match p with P2 | P3 | P6 => true | _ => false end
| L16 => match p with P2 | P12 | P13 => true | _ => false end
| L17 => match p with P2 | P4 | P5 => true | _ => false end
| L18 => match p with P2 | P8 | P9 => true | _ => false end
| L19 => match p with P3 | P10 | P14 => true | _ => false end
| L20 => match p with P3 | P8 | P12 => true | _ => false end
| L21 => match p with P3 | P9 | P13 => true | _ => false end
| L22 => match p with P3 | P7 | P11 => true | _ => false end
| L23 => match p with P4 | P9 | P14 => true | _ => false end
| L24 => match p with P4 | P8 | P11 => true | _ => false end
| L25 => match p with P4 | P10 | P13 => true | _ => false end
| L26 => match p with P4 | P7 | P12 => true | _ => false end
| L27 => match p with P5 | P8 | P14 => true | _ => false end
| L28 => match p with P5 | P7 | P13 => true | _ => false end
| L29 => match p with P5 | P9 | P11 => true | _ => false end
| L30 => match p with P5 | P10 | P12 => true | _ => false end
| L31 => match p with P6 | P7 | P14 => true | _ => false end
| L32 => match p with P6 | P8 | P13 => true | _ => false end
| L33 => match p with P6 | P9 | P12 => true | _ => false end
| L34 => match p with P6 | P10 | P11 => true | _ => false end
end.

Definition f_a2 (l:Line) (m:Line) :=
match l with
| L0 => match m with
| L0 => P2
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P1
| L8 => P1
| L9 => P1
| L10 => P1
| L11 => P1
| L12 => P1
| L13 => P2
| L14 => P2
| L15 => P2
| L16 => P2
| L17 => P2
| L18 => P2
| L19 => P0
| L20 => P0
| L21 => P0
| L22 => P0
| L23 => P0
| L24 => P0
| L25 => P0
| L26 => P0
| L27 => P0
| L28 => P0
| L29 => P0
| L30 => P0
| L31 => P0
| L32 => P0
| L33 => P0
| L34 => P0
end
| L1 => match m with
| L0 => P0
| L1 => P4
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P4
| L8 => P0
| L9 => P0
| L10 => P0
| L11 => P0
| L12 => P3
| L13 => P0
| L14 => P0
| L15 => P3
| L16 => P0
| L17 => P4
| L18 => P0
| L19 => P3
| L20 => P3
| L21 => P3
| L22 => P3
| L23 => P4
| L24 => P4
| L25 => P4
| L26 => P4
| L27 => P0
| L28 => P0
| L29 => P0
| L30 => P0
| L31 => P0
| L32 => P0
| L33 => P0
| L34 => P0
end
| L2 => match m with
| L0 => P0
| L1 => P0
| L2 => P6
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P6
| L8 => P0
| L9 => P0
| L10 => P0
| L11 => P0
| L12 => P5
| L13 => P0
| L14 => P0
| L15 => P6
| L16 => P0
| L17 => P5
| L18 => P0
| L19 => P0
| L20 => P0
| L21 => P0
| L22 => P0
| L23 => P0
| L24 => P0
| L25 => P0
| L26 => P0
| L27 => P5
| L28 => P5
| L29 => P5
| L30 => P5
| L31 => P6
| L32 => P6
| L33 => P6
| L34 => P6
end
| L3 => match m with
| L0 => P0
| L1 => P0
| L2 => P0
| L3 => P8
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P0
| L8 => P8
| L9 => P0
| L10 => P7
| L11 => P0
| L12 => P0
| L13 => P7
| L14 => P0
| L15 => P0
| L16 => P0
| L17 => P0
| L18 => P8
| L19 => P0
| L20 => P8
| L21 => P0
| L22 => P7
| L23 => P0
| L24 => P8
| L25 => P0
| L26 => P7
| L27 => P8
| L28 => P7
| L29 => P0
| L30 => P0
| L31 => P7
| L32 => P8
| L33 => P0
| L34 => P0
end
| L4 => match m with
| L0 => P0
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P9
| L5 => P0
| L6 => P0
| L7 => P0
| L8 => P10
| L9 => P0
| L10 => P9
| L11 => P0
| L12 => P0
| L13 => P10
| L14 => P0
| L15 => P0
| L16 => P0
| L17 => P0
| L18 => P9
| L19 => P10
| L20 => P0
| L21 => P9
| L22 => P0
| L23 => P9
| L24 => P0
| L25 => P10
| L26 => P0
| L27 => P0
| L28 => P0
| L29 => P9
| L30 => P10
| L31 => P0
| L32 => P0
| L33 => P9
| L34 => P10
end
| L5 => match m with
| L0 => P0
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P12
| L6 => P0
| L7 => P0
| L8 => P0
| L9 => P12
| L10 => P0
| L11 => P11
| L12 => P0
| L13 => P0
| L14 => P11
| L15 => P0
| L16 => P12
| L17 => P0
| L18 => P0
| L19 => P0
| L20 => P12
| L21 => P0
| L22 => P11
| L23 => P0
| L24 => P11
| L25 => P0
| L26 => P12
| L27 => P0
| L28 => P0
| L29 => P11
| L30 => P12
| L31 => P0
| L32 => P0
| L33 => P12
| L34 => P11
end
| L6 => match m with
| L0 => P0
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P14
| L7 => P0
| L8 => P0
| L9 => P14
| L10 => P0
| L11 => P13
| L12 => P0
| L13 => P0
| L14 => P14
| L15 => P0
| L16 => P13
| L17 => P0
| L18 => P0
| L19 => P14
| L20 => P0
| L21 => P13
| L22 => P0
| L23 => P14
| L24 => P0
| L25 => P13
| L26 => P0
| L27 => P14
| L28 => P13
| L29 => P0
| L30 => P0
| L31 => P14
| L32 => P13
| L33 => P0
| L34 => P0
end
| L7 => match m with
| L0 => P1
| L1 => P4
| L2 => P6
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P6
| L8 => P1
| L9 => P1
| L10 => P1
| L11 => P1
| L12 => P1
| L13 => P0
| L14 => P0
| L15 => P6
| L16 => P0
| L17 => P4
| L18 => P0
| L19 => P0
| L20 => P0
| L21 => P0
| L22 => P0
| L23 => P4
| L24 => P4
| L25 => P4
| L26 => P4
| L27 => P0
| L28 => P0
| L29 => P0
| L30 => P0
| L31 => P6
| L32 => P6
| L33 => P6
| L34 => P6
end
| L8 => match m with
| L0 => P1
| L1 => P0
| L2 => P0
| L3 => P8
| L4 => P10
| L5 => P0
| L6 => P0
| L7 => P1
| L8 => P10
| L9 => P1
| L10 => P1
| L11 => P1
| L12 => P1
| L13 => P10
| L14 => P0
| L15 => P0
| L16 => P0
| L17 => P0
| L18 => P8
| L19 => P10
| L20 => P8
| L21 => P0
| L22 => P0
| L23 => P0
| L24 => P8
| L25 => P10
| L26 => P0
| L27 => P8
| L28 => P0
| L29 => P0
| L30 => P10
| L31 => P0
| L32 => P8
| L33 => P0
| L34 => P10
end
| L9 => match m with
| L0 => P1
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P12
| L6 => P14
| L7 => P1
| L8 => P1
| L9 => P14
| L10 => P1
| L11 => P1
| L12 => P1
| L13 => P0
| L14 => P14
| L15 => P0
| L16 => P12
| L17 => P0
| L18 => P0
| L19 => P14
| L20 => P12
| L21 => P0
| L22 => P0
| L23 => P14
| L24 => P0
| L25 => P0
| L26 => P12
| L27 => P14
| L28 => P0
| L29 => P0
| L30 => P12
| L31 => P14
| L32 => P0
| L33 => P12
| L34 => P0
end
| L10 => match m with
| L0 => P1
| L1 => P0
| L2 => P0
| L3 => P7
| L4 => P9
| L5 => P0
| L6 => P0
| L7 => P1
| L8 => P1
| L9 => P1
| L10 => P9
| L11 => P1
| L12 => P1
| L13 => P7
| L14 => P0
| L15 => P0
| L16 => P0
| L17 => P0
| L18 => P9
| L19 => P0
| L20 => P0
| L21 => P9
| L22 => P7
| L23 => P9
| L24 => P0
| L25 => P0
| L26 => P7
| L27 => P0
| L28 => P7
| L29 => P9
| L30 => P0
| L31 => P7
| L32 => P0
| L33 => P9
| L34 => P0
end
| L11 => match m with
| L0 => P1
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P11
| L6 => P13
| L7 => P1
| L8 => P1
| L9 => P1
| L10 => P1
| L11 => P11
| L12 => P1
| L13 => P0
| L14 => P11
| L15 => P0
| L16 => P13
| L17 => P0
| L18 => P0
| L19 => P0
| L20 => P0
| L21 => P13
| L22 => P11
| L23 => P0
| L24 => P11
| L25 => P13
| L26 => P0
| L27 => P0
| L28 => P13
| L29 => P11
| L30 => P0
| L31 => P0
| L32 => P13
| L33 => P0
| L34 => P11
end
| L12 => match m with
| L0 => P1
| L1 => P3
| L2 => P5
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P1
| L8 => P1
| L9 => P1
| L10 => P1
| L11 => P1
| L12 => P5
| L13 => P0
| L14 => P0
| L15 => P3
| L16 => P0
| L17 => P5
| L18 => P0
| L19 => P3
| L20 => P3
| L21 => P3
| L22 => P3
| L23 => P0
| L24 => P0
| L25 => P0
| L26 => P0
| L27 => P5
| L28 => P5
| L29 => P5
| L30 => P5
| L31 => P0
| L32 => P0
| L33 => P0
| L34 => P0
end
| L13 => match m with
| L0 => P2
| L1 => P0
| L2 => P0
| L3 => P7
| L4 => P10
| L5 => P0
| L6 => P0
| L7 => P0
| L8 => P10
| L9 => P0
| L10 => P7
| L11 => P0
| L12 => P0
| L13 => P10
| L14 => P2
| L15 => P2
| L16 => P2
| L17 => P2
| L18 => P2
| L19 => P10
| L20 => P0
| L21 => P0
| L22 => P7
| L23 => P0
| L24 => P0
| L25 => P10
| L26 => P7
| L27 => P0
| L28 => P7
| L29 => P0
| L30 => P10
| L31 => P7
| L32 => P0
| L33 => P0
| L34 => P10
end
| L14 => match m with
| L0 => P2
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P11
| L6 => P14
| L7 => P0
| L8 => P0
| L9 => P14
| L10 => P0
| L11 => P11
| L12 => P0
| L13 => P2
| L14 => P14
| L15 => P2
| L16 => P2
| L17 => P2
| L18 => P2
| L19 => P14
| L20 => P0
| L21 => P0
| L22 => P11
| L23 => P14
| L24 => P11
| L25 => P0
| L26 => P0
| L27 => P14
| L28 => P0
| L29 => P11
| L30 => P0
| L31 => P14
| L32 => P0
| L33 => P0
| L34 => P11
end
| L15 => match m with
| L0 => P2
| L1 => P3
| L2 => P6
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P6
| L8 => P0
| L9 => P0
| L10 => P0
| L11 => P0
| L12 => P3
| L13 => P2
| L14 => P2
| L15 => P6
| L16 => P2
| L17 => P2
| L18 => P2
| L19 => P3
| L20 => P3
| L21 => P3
| L22 => P3
| L23 => P0
| L24 => P0
| L25 => P0
| L26 => P0
| L27 => P0
| L28 => P0
| L29 => P0
| L30 => P0
| L31 => P6
| L32 => P6
| L33 => P6
| L34 => P6
end
| L16 => match m with
| L0 => P2
| L1 => P0
| L2 => P0
| L3 => P0
| L4 => P0
| L5 => P12
| L6 => P13
| L7 => P0
| L8 => P0
| L9 => P12
| L10 => P0
| L11 => P13
| L12 => P0
| L13 => P2
| L14 => P2
| L15 => P2
| L16 => P13
| L17 => P2
| L18 => P2
| L19 => P0
| L20 => P12
| L21 => P13
| L22 => P0
| L23 => P0
| L24 => P0
| L25 => P13
| L26 => P12
| L27 => P0
| L28 => P13
| L29 => P0
| L30 => P12
| L31 => P0
| L32 => P13
| L33 => P12
| L34 => P0
end
| L17 => match m with
| L0 => P2
| L1 => P4
| L2 => P5
| L3 => P0
| L4 => P0
| L5 => P0
| L6 => P0
| L7 => P4
| L8 => P0
| L9 => P0
| L10 => P0
| L11 => P0
| L12 => P5
| L13 => P2
| L14 => P2
| L15 => P2
| L16 => P2
| L17 => P5
| L18 => P2
| L19 => P0
| L20 => P0
| L21 => P0
| L22 => P0
| L23 => P4
| L24 => P4
| L25 => P4
| L26 => P4
| L27 => P5
| L28 => P5
| L29 => P5
| L30 => P5
| L31 => P0
| L32 => P0
| L33 => P0
| L34 => P0
end
| L18 => match m with
| L0 => P2
| L1 => P0
| L2 => P0
| L3 => P8
| L4 => P9
| L5 => P0
| L6 => P0
| L7 => P0
| L8 => P8
| L9 => P0
| L10 => P9
| L11 => P0
| L12 => P0
| L13 => P2
| L14 => P2
| L15 => P2
| L16 => P2
| L17 => P2
| L18 => P9
| L19 => P0
| L20 => P8
| L21 => P9
| L22 => P0
| L23 => P9
| L24 => P8
| L25 => P0
| L26 => P0
| L27 => P8
| L28 => P0
| L29 => P9
| L30 => P0
| L31 => P0
| L32 => P8
| L33 => P9
| L34 => P0
end
| L19 => match m with
| L0 => P0
| L1 => P3
| L2 => P0
| L3 => P0
| L4 => P10
| L5 => P0
| L6 => P14
| L7 => P0
| L8 => P10
| L9 => P14
| L10 => P0
| L11 => P0
| L12 => P3
| L13 => P10
| L14 => P14
| L15 => P3
| L16 => P0
| L17 => P0
| L18 => P0
| L19 => P14
| L20 => P3
| L21 => P3
| L22 => P3
| L23 => P14
| L24 => P0
| L25 => P10
| L26 => P0
| L27 => P14
| L28 => P0
| L29 => P0
| L30 => P10
| L31 => P14
| L32 => P0
| L33 => P0
| L34 => P10
end
| L20 => match m with
| L0 => P0
| L1 => P3
| L2 => P0
| L3 => P8
| L4 => P0
| L5 => P12
| L6 => P0
| L7 => P0
| L8 => P8
| L9 => P12
| L10 => P0
| L11 => P0
| L12 => P3
| L13 => P0
| L14 => P0
| L15 => P3
| L16 => P12
| L17 => P0
| L18 => P8
| L19 => P3
| L20 => P12
| L21 => P3
| L22 => P3
| L23 => P0
| L24 => P8
| L25 => P0
| L26 => P12
| L27 => P8
| L28 => P0
| L29 => P0
| L30 => P12
| L31 => P0
| L32 => P8
| L33 => P12
| L34 => P0
end
| L21 => match m with
| L0 => P0
| L1 => P3
| L2 => P0
| L3 => P0
| L4 => P9
| L5 => P0
| L6 => P13
| L7 => P0
| L8 => P0
| L9 => P0
| L10 => P9
| L11 => P13
| L12 => P3
| L13 => P0
| L14 => P0
| L15 => P3
| L16 => P13
| L17 => P0
| L18 => P9
| L19 => P3
| L20 => P3
| L21 => P13
| L22 => P3
| L23 => P9
| L24 => P0
| L25 => P13
| L26 => P0
| L27 => P0
| L28 => P13
| L29 => P9
| L30 => P0
| L31 => P0
| L32 => P13
| L33 => P9
| L34 => P0
end
| L22 => match m with
| L0 => P0
| L1 => P3
| L2 => P0
| L3 => P7
| L4 => P0
| L5 => P11
| L6 => P0
| L7 => P0
| L8 => P0
| L9 => P0
| L10 => P7
| L11 => P11
| L12 => P3
| L13 => P7
| L14 => P11
| L15 => P3
| L16 => P0
| L17 => P0
| L18 => P0
| L19 => P3
| L20 => P3
| L21 => P3
| L22 => P11
| L23 => P0
| L24 => P11
| L25 => P0
| L26 => P7
| L27 => P0
| L28 => P7
| L29 => P11
| L30 => P0
| L31 => P7
| L32 => P0
| L33 => P0
| L34 => P11
end
| L23 => match m with
| L0 => P0
| L1 => P4
| L2 => P0
| L3 => P0
| L4 => P9
| L5 => P0
| L6 => P14
| L7 => P4
| L8 => P0
| L9 => P14
| L10 => P9
| L11 => P0
| L12 => P0
| L13 => P0
| L14 => P14
| L15 => P0
| L16 => P0
| L17 => P4
| L18 => P9
| L19 => P14
| L20 => P0
| L21 => P9
| L22 => P0
| L23 => P14
| L24 => P4
| L25 => P4
| L26 => P4
| L27 => P14
| L28 => P0
| L29 => P9
| L30 => P0
| L31 => P14
| L32 => P0
| L33 => P9
| L34 => P0
end
| L24 => match m with
| L0 => P0
| L1 => P4
| L2 => P0
| L3 => P8
| L4 => P0
| L5 => P11
| L6 => P0
| L7 => P4
| L8 => P8
| L9 => P0
| L10 => P0
| L11 => P11
| L12 => P0
| L13 => P0
| L14 => P11
| L15 => P0
| L16 => P0
| L17 => P4
| L18 => P8
| L19 => P0
| L20 => P8
| L21 => P0
| L22 => P11
| L23 => P4
| L24 => P11
| L25 => P4
| L26 => P4
| L27 => P8
| L28 => P0
| L29 => P11
| L30 => P0
| L31 => P0
| L32 => P8
| L33 => P0
| L34 => P11
end
| L25 => match m with
| L0 => P0
| L1 => P4
| L2 => P0
| L3 => P0
| L4 => P10
| L5 => P0
| L6 => P13
| L7 => P4
| L8 => P10
| L9 => P0
| L10 => P0
| L11 => P13
| L12 => P0
| L13 => P10
| L14 => P0
| L15 => P0
| L16 => P13
| L17 => P4
| L18 => P0
| L19 => P10
| L20 => P0
| L21 => P13
| L22 => P0
| L23 => P4
| L24 => P4
| L25 => P13
| L26 => P4
| L27 => P0
| L28 => P13
| L29 => P0
| L30 => P10
| L31 => P0
| L32 => P13
| L33 => P0
| L34 => P10
end
| L26 => match m with
| L0 => P0
| L1 => P4
| L2 => P0
| L3 => P7
| L4 => P0
| L5 => P12
| L6 => P0
| L7 => P4
| L8 => P0
| L9 => P12
| L10 => P7
| L11 => P0
| L12 => P0
| L13 => P7
| L14 => P0
| L15 => P0
| L16 => P12
| L17 => P4
| L18 => P0
| L19 => P0
| L20 => P12
| L21 => P0
| L22 => P7
| L23 => P4
| L24 => P4
| L25 => P4
| L26 => P12
| L27 => P0
| L28 => P7
| L29 => P0
| L30 => P12
| L31 => P7
| L32 => P0
| L33 => P12
| L34 => P0
end
| L27 => match m with
| L0 => P0
| L1 => P0
| L2 => P5
| L3 => P8
| L4 => P0
| L5 => P0
| L6 => P14
| L7 => P0
| L8 => P8
| L9 => P14
| L10 => P0
| L11 => P0
| L12 => P5
| L13 => P0
| L14 => P14
| L15 => P0
| L16 => P0
| L17 => P5
| L18 => P8
| L19 => P14
| L20 => P8
| L21 => P0
| L22 => P0
| L23 => P14
| L24 => P8
| L25 => P0
| L26 => P0
| L27 => P14
| L28 => P5
| L29 => P5
| L30 => P5
| L31 => P14
| L32 => P8
| L33 => P0
| L34 => P0
end
| L28 => match m with
| L0 => P0
| L1 => P0
| L2 => P5
| L3 => P7
| L4 => P0
| L5 => P0
| L6 => P13
| L7 => P0
| L8 => P0
| L9 => P0
| L10 => P7
| L11 => P13
| L12 => P5
| L13 => P7
| L14 => P0
| L15 => P0
| L16 => P13
| L17 => P5
| L18 => P0
| L19 => P0
| L20 => P0
| L21 => P13
| L22 => P7
| L23 => P0
| L24 => P0
| L25 => P13
| L26 => P7
| L27 => P5
| L28 => P13
| L29 => P5
| L30 => P5
| L31 => P7
| L32 => P13
| L33 => P0
| L34 => P0
end
| L29 => match m with
| L0 => P0
| L1 => P0
| L2 => P5
| L3 => P0
| L4 => P9
| L5 => P11
| L6 => P0
| L7 => P0
| L8 => P0
| L9 => P0
| L10 => P9
| L11 => P11
| L12 => P5
| L13 => P0
| L14 => P11
| L15 => P0
| L16 => P0
| L17 => P5
| L18 => P9
| L19 => P0
| L20 => P0
| L21 => P9
| L22 => P11
| L23 => P9
| L24 => P11
| L25 => P0
| L26 => P0
| L27 => P5
| L28 => P5
| L29 => P11
| L30 => P5
| L31 => P0
| L32 => P0
| L33 => P9
| L34 => P11
end
| L30 => match m with
| L0 => P0
| L1 => P0
| L2 => P5
| L3 => P0
| L4 => P10
| L5 => P12
| L6 => P0
| L7 => P0
| L8 => P10
| L9 => P12
| L10 => P0
| L11 => P0
| L12 => P5
| L13 => P10
| L14 => P0
| L15 => P0
| L16 => P12
| L17 => P5
| L18 => P0
| L19 => P10
| L20 => P12
| L21 => P0
| L22 => P0
| L23 => P0
| L24 => P0
| L25 => P10
| L26 => P12
| L27 => P5
| L28 => P5
| L29 => P5
| L30 => P12
| L31 => P0
| L32 => P0
| L33 => P12
| L34 => P10
end
| L31 => match m with
| L0 => P0
| L1 => P0
| L2 => P6
| L3 => P7
| L4 => P0
| L5 => P0
| L6 => P14
| L7 => P6
| L8 => P0
| L9 => P14
| L10 => P7
| L11 => P0
| L12 => P0
| L13 => P7
| L14 => P14
| L15 => P6
| L16 => P0
| L17 => P0
| L18 => P0
| L19 => P14
| L20 => P0
| L21 => P0
| L22 => P7
| L23 => P14
| L24 => P0
| L25 => P0
| L26 => P7
| L27 => P14
| L28 => P7
| L29 => P0
| L30 => P0
| L31 => P14
| L32 => P6
| L33 => P6
| L34 => P6
end
| L32 => match m with
| L0 => P0
| L1 => P0
| L2 => P6
| L3 => P8
| L4 => P0
| L5 => P0
| L6 => P13
| L7 => P6
| L8 => P8
| L9 => P0
| L10 => P0
| L11 => P13
| L12 => P0
| L13 => P0
| L14 => P0
| L15 => P6
| L16 => P13
| L17 => P0
| L18 => P8
| L19 => P0
| L20 => P8
| L21 => P13
| L22 => P0
| L23 => P0
| L24 => P8
| L25 => P13
| L26 => P0
| L27 => P8
| L28 => P13
| L29 => P0
| L30 => P0
| L31 => P6
| L32 => P13
| L33 => P6
| L34 => P6
end
| L33 => match m with
| L0 => P0
| L1 => P0
| L2 => P6
| L3 => P0
| L4 => P9
| L5 => P12
| L6 => P0
| L7 => P6
| L8 => P0
| L9 => P12
| L10 => P9
| L11 => P0
| L12 => P0
| L13 => P0
| L14 => P0
| L15 => P6
| L16 => P12
| L17 => P0
| L18 => P9
| L19 => P0
| L20 => P12
| L21 => P9
| L22 => P0
| L23 => P9
| L24 => P0
| L25 => P0
| L26 => P12
| L27 => P0
| L28 => P0
| L29 => P9
| L30 => P12
| L31 => P6
| L32 => P6
| L33 => P12
| L34 => P6
end
| L34 => match m with
| L0 => P0
| L1 => P0
| L2 => P6
| L3 => P0
| L4 => P10
| L5 => P11
| L6 => P0
| L7 => P6
| L8 => P10
| L9 => P0
| L10 => P0
| L11 => P11
| L12 => P0
| L13 => P10
| L14 => P11
| L15 => P6
| L16 => P0
| L17 => P0
| L18 => P0
| L19 => P10
| L20 => P0
| L21 => P0
| L22 => P11
| L23 => P0
| L24 => P11
| L25 => P10
| L26 => P0
| L27 => P0
| L28 => P0
| L29 => P11
| L30 => P10
| L31 => P6
| L32 => P6
| L33 => P6
| L34 => P11
end
end.

Definition l_from_points (x:Point) (y:Point) : Line :=
match x with
| P0 =>
match y with
| P0 => L0
| P1 => L0
| P2 => L0
| P3 => L1
| P4 => L1
| P5 => L2
| P6 => L2
| P7 => L3
| P8 => L3
| P9 => L4
| P10 => L4
| P11 => L5
| P12 => L5
| P13 => L6
| P14 => L6
end
| P1 =>
match y with
| P0 => L0
| P1 => L0
| P2 => L0
| P3 => L12
| P4 => L7
| P5 => L12
| P6 => L7
| P7 => L10
| P8 => L8
| P9 => L10
| P10 => L8
| P11 => L11
| P12 => L9
| P13 => L11
| P14 => L9
end
| P2 =>
match y with
| P0 => L0
| P1 => L0
| P2 => L0
| P3 => L15
| P4 => L17
| P5 => L17
| P6 => L15
| P7 => L13
| P8 => L18
| P9 => L18
| P10 => L13
| P11 => L14
| P12 => L16
| P13 => L16
| P14 => L14
end
| P3 =>
match y with
| P0 => L1
| P1 => L12
| P2 => L15
| P3 => L1
| P4 => L1
| P5 => L12
| P6 => L15
| P7 => L22
| P8 => L20
| P9 => L21
| P10 => L19
| P11 => L22
| P12 => L20
| P13 => L21
| P14 => L19
end
| P4 =>
match y with
| P0 => L1
| P1 => L7
| P2 => L17
| P3 => L1
| P4 => L1
| P5 => L17
| P6 => L7
| P7 => L26
| P8 => L24
| P9 => L23
| P10 => L25
| P11 => L24
| P12 => L26
| P13 => L25
| P14 => L23
end
| P5 =>
match y with
| P0 => L2
| P1 => L12
| P2 => L17
| P3 => L12
| P4 => L17
| P5 => L2
| P6 => L2
| P7 => L28
| P8 => L27
| P9 => L29
| P10 => L30
| P11 => L29
| P12 => L30
| P13 => L28
| P14 => L27
end
| P6 =>
match y with
| P0 => L2
| P1 => L7
| P2 => L15
| P3 => L15
| P4 => L7
| P5 => L2
| P6 => L2
| P7 => L31
| P8 => L32
| P9 => L33
| P10 => L34
| P11 => L34
| P12 => L33
| P13 => L32
| P14 => L31
end
| P7 =>
match y with
| P0 => L3
| P1 => L10
| P2 => L13
| P3 => L22
| P4 => L26
| P5 => L28
| P6 => L31
| P7 => L3
| P8 => L3
| P9 => L10
| P10 => L13
| P11 => L22
| P12 => L26
| P13 => L28
| P14 => L31
end
| P8 =>
match y with
| P0 => L3
| P1 => L8
| P2 => L18
| P3 => L20
| P4 => L24
| P5 => L27
| P6 => L32
| P7 => L3
| P8 => L3
| P9 => L18
| P10 => L8
| P11 => L24
| P12 => L20
| P13 => L32
| P14 => L27
end
| P9 =>
match y with
| P0 => L4
| P1 => L10
| P2 => L18
| P3 => L21
| P4 => L23
| P5 => L29
| P6 => L33
| P7 => L10
| P8 => L18
| P9 => L4
| P10 => L4
| P11 => L29
| P12 => L33
| P13 => L21
| P14 => L23
end
| P10 =>
match y with
| P0 => L4
| P1 => L8
| P2 => L13
| P3 => L19
| P4 => L25
| P5 => L30
| P6 => L34
| P7 => L13
| P8 => L8
| P9 => L4
| P10 => L4
| P11 => L34
| P12 => L30
| P13 => L25
| P14 => L19
end
| P11 =>
match y with
| P0 => L5
| P1 => L11
| P2 => L14
| P3 => L22
| P4 => L24
| P5 => L29
| P6 => L34
| P7 => L22
| P8 => L24
| P9 => L29
| P10 => L34
| P11 => L5
| P12 => L5
| P13 => L11
| P14 => L14
end
| P12 =>
match y with
| P0 => L5
| P1 => L9
| P2 => L16
| P3 => L20
| P4 => L26
| P5 => L30
| P6 => L33
| P7 => L26
| P8 => L20
| P9 => L33
| P10 => L30
| P11 => L5
| P12 => L5
| P13 => L16
| P14 => L9
end
| P13 =>
match y with
| P0 => L6
| P1 => L11
| P2 => L16
| P3 => L21
| P4 => L25
| P5 => L28
| P6 => L32
| P7 => L28
| P8 => L32
| P9 => L21
| P10 => L25
| P11 => L11
| P12 => L16
| P13 => L6
| P14 => L6
end
| P14 =>
match y with
| P0 => L6
| P1 => L9
| P2 => L14
| P3 => L19
| P4 => L23
| P5 => L27
| P6 => L31
| P7 => L31
| P8 => L27
| P9 => L23
| P10 => L19
| P11 => L14
| P12 => L9
| P13 => L6
| P14 => L6
end
end.

Check l_from_points.

Definition points_from_line (l:Line) :=
match l with
| L0  =>  (P0,P1,P2)
| L1  =>  (P0,P3,P4)
| L2  =>  (P0,P5,P6)
| L3  =>  (P0,P7,P8)
| L4  =>  (P0,P10,P9)
| L5  =>  (P0,P11,P12)
| L6  =>  (P0,P13,P14)
| L7  =>  (P1,P4,P6)
| L8  =>  (P1,P8,P10)
| L9  =>  (P1,P12,P14)
| L10  =>  (P1,P7,P9)
| L11  =>  (P1,P13,P11)
| L12  =>  (P1,P3,P5)
| L13  =>  (P2,P7,P10)
| L14  =>  (P2,P11,P14)
| L15  =>  (P2,P3,P6)
| L16  =>  (P2,P12,P13)
| L17  =>  (P2,P4,P5)
| L18  =>  (P2,P8,P9)
| L19  =>  (P3,P10,P14)
| L20  =>  (P3,P8,P12)
| L21  =>  (P3,P9,P13)
| L22  =>  (P3,P7,P11)
| L23  =>  (P4,P9,P14)
| L24  =>  (P4,P8,P11)
| L25  =>  (P4,P10,P13)
| L26  =>  (P4,P7,P12)
| L27  =>  (P5,P8,P14)
| L28  =>  (P5,P7,P13)
| L29  =>  (P5,P9,P11)
| L30  =>  (P5,P10,P12)
| L31  =>  (P6,P7,P14)
| L32  =>  (P6,P8,P13)
| L33  =>  (P6,P9,P12)
| L34  =>  (P6,P10,P11)
 end.

Check points_from_line.

Definition f_a3_3 (l1:Line) (l2:Line) (l3:Line) :=
match l3 with
 | L0 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L1 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L2 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L3 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L4 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                  | L4 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L5 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                  | L4 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                  | L4 => (L0,(P0,P0,P0))
                  | L5 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L6 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                  | L4 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                  | L4 => (L0,(P0,P0,P0))
                  | L5 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P0))
                  | L1 => (L0,(P0,P0,P0))
                  | L2 => (L0,(P0,P0,P0))
                  | L3 => (L0,(P0,P0,P0))
                  | L4 => (L0,(P0,P0,P0))
                  | L5 => (L0,(P0,P0,P0))
                  | L6 => (L0,(P0,P0,P0))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L7 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                  | L6 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L8 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                  | L6 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L9 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                  | L6 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L10 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                  | L6 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                  | L10 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L11 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                  | L6 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                  | L10 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                  | L10 => (L0,(P1,P1,P1))
                  | L11 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L12 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P1))
                  | L1 => (L0,(P0,P0,P1))
                  | L2 => (L0,(P0,P0,P1))
                  | L3 => (L0,(P0,P0,P1))
                  | L4 => (L0,(P0,P0,P1))
                  | L5 => (L0,(P0,P0,P1))
                  | L6 => (L0,(P0,P0,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                  | L10 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                  | L10 => (L0,(P1,P1,P1))
                  | L11 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P1))
                  | L1 => (L0,(P0,P1,P1))
                  | L2 => (L0,(P0,P1,P1))
                  | L3 => (L0,(P0,P1,P1))
                  | L4 => (L0,(P0,P1,P1))
                  | L5 => (L0,(P0,P1,P1))
                  | L6 => (L0,(P0,P1,P1))
                  | L7 => (L0,(P1,P1,P1))
                  | L8 => (L0,(P1,P1,P1))
                  | L9 => (L0,(P1,P1,P1))
                  | L10 => (L0,(P1,P1,P1))
                  | L11 => (L0,(P1,P1,P1))
                  | L12 => (L0,(P1,P1,P1))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L13 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                  | L6 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                  | L12 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L14 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                  | L6 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                  | L12 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L15 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                  | L6 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                  | L12 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L16 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                  | L6 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                  | L12 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                  | L16 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L17 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                  | L6 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                  | L12 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                  | L16 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                  | L16 => (L0,(P2,P2,P2))
                  | L17 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L18 => match l2 with
        | L0 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L0,(P0,P0,P2))
                  | L1 => (L0,(P0,P0,P2))
                  | L2 => (L0,(P0,P0,P2))
                  | L3 => (L0,(P0,P0,P2))
                  | L4 => (L0,(P0,P0,P2))
                  | L5 => (L0,(P0,P0,P2))
                  | L6 => (L0,(P0,P0,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L0,(P0,P1,P2))
                  | L1 => (L0,(P0,P1,P2))
                  | L2 => (L0,(P0,P1,P2))
                  | L3 => (L0,(P0,P1,P2))
                  | L4 => (L0,(P0,P1,P2))
                  | L5 => (L0,(P0,P1,P2))
                  | L6 => (L0,(P0,P1,P2))
                  | L7 => (L0,(P1,P1,P2))
                  | L8 => (L0,(P1,P1,P2))
                  | L9 => (L0,(P1,P1,P2))
                  | L10 => (L0,(P1,P1,P2))
                  | L11 => (L0,(P1,P1,P2))
                  | L12 => (L0,(P1,P1,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                  | L16 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                  | L16 => (L0,(P2,P2,P2))
                  | L17 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L0,(P0,P2,P2))
                  | L1 => (L0,(P0,P2,P2))
                  | L2 => (L0,(P0,P2,P2))
                  | L3 => (L0,(P0,P2,P2))
                  | L4 => (L0,(P0,P2,P2))
                  | L5 => (L0,(P0,P2,P2))
                  | L6 => (L0,(P0,P2,P2))
                  | L7 => (L0,(P1,P2,P2))
                  | L8 => (L0,(P1,P2,P2))
                  | L9 => (L0,(P1,P2,P2))
                  | L10 => (L0,(P1,P2,P2))
                  | L11 => (L0,(P1,P2,P2))
                  | L12 => (L0,(P1,P2,P2))
                  | L13 => (L0,(P2,P2,P2))
                  | L14 => (L0,(P2,P2,P2))
                  | L15 => (L0,(P2,P2,P2))
                  | L16 => (L0,(P2,P2,P2))
                  | L17 => (L0,(P2,P2,P2))
                  | L18 => (L0,(P2,P2,P2))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L19 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                  | L6 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L8,(P1,P1,P10))
                  | L9 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L8,(P1,P1,P10))
                  | L10 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L8,(P1,P1,P10))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L8,(P1,P1,P10))
                  | L11 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L8,(P1,P1,P10))
                  | L9 => (L8,(P1,P1,P10))
                  | L10 => (L8,(P1,P1,P10))
                  | L11 => (L8,(P1,P1,P10))
                  | L12 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L9,(P1,P14,P14))
                  | L8 => (L9,(P1,P14,P14))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L9,(P1,P14,P14))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L9,(P1,P14,P14))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L12,(P1,P3,P3))
                  | L9 => (L12,(P1,P3,P3))
                  | L10 => (L12,(P1,P3,P3))
                  | L11 => (L12,(P1,P3,P3))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L9,(P1,P12,P14))
                  | L8 => (L9,(P1,P12,P14))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L9,(P1,P12,P14))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L9,(P1,P12,P14))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                  | L8 => (L12,(P1,P5,P3))
                  | L9 => (L12,(P1,P5,P3))
                  | L10 => (L12,(P1,P5,P3))
                  | L11 => (L12,(P1,P5,P3))
                  | L12 => (L1,(P3,P4,P3))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L1,(P3,P4,P3))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L13,(P2,P2,P10))
                  | L18 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L20 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                  | L6 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L8,(P1,P1,P8))
                  | L9 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L8,(P1,P1,P8))
                  | L10 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L8,(P1,P1,P8))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L8,(P1,P1,P8))
                  | L11 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L8,(P1,P1,P8))
                  | L9 => (L8,(P1,P1,P8))
                  | L10 => (L8,(P1,P1,P8))
                  | L11 => (L8,(P1,P1,P8))
                  | L12 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L9,(P1,P14,P12))
                  | L8 => (L9,(P1,P14,P12))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L9,(P1,P14,P12))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L9,(P1,P14,P12))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L12,(P1,P3,P3))
                  | L9 => (L12,(P1,P3,P3))
                  | L10 => (L12,(P1,P3,P3))
                  | L11 => (L12,(P1,P3,P3))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L15,(P2,P2,P3))
                  | L15 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L9,(P1,P12,P12))
                  | L8 => (L9,(P1,P12,P12))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L9,(P1,P12,P12))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L9,(P1,P12,P12))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L15,(P2,P2,P3))
                  | L16 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                  | L8 => (L12,(P1,P5,P3))
                  | L9 => (L12,(P1,P5,P3))
                  | L10 => (L12,(P1,P5,P3))
                  | L11 => (L12,(P1,P5,P3))
                  | L12 => (L1,(P3,P4,P3))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L15,(P2,P2,P3))
                  | L15 => (L1,(P3,P4,P3))
                  | L16 => (L15,(P2,P2,P3))
                  | L17 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L15,(P2,P2,P3))
                  | L15 => (L15,(P2,P2,P3))
                  | L16 => (L15,(P2,P2,P3))
                  | L17 => (L15,(P2,P2,P3))
                  | L18 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L8,(P1,P10,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L8,(P1,P10,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L1,(P3,P3,P3))
                  | L20 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L21 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                  | L6 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L10,(P1,P1,P9))
                  | L9 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P1,P9))
                  | L10 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L10,(P1,P1,P9))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L10,(P1,P1,P9))
                  | L11 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L10,(P1,P1,P9))
                  | L9 => (L10,(P1,P1,P9))
                  | L10 => (L10,(P1,P1,P9))
                  | L11 => (L10,(P1,P1,P9))
                  | L12 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L11,(P1,P11,P13))
                  | L8 => (L11,(P1,P11,P13))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L11,(P1,P11,P13))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L11,(P1,P11,P13))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L12,(P1,P3,P3))
                  | L9 => (L12,(P1,P3,P3))
                  | L10 => (L12,(P1,P3,P3))
                  | L11 => (L12,(P1,P3,P3))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L15,(P2,P2,P3))
                  | L15 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L11,(P1,P13,P13))
                  | L8 => (L11,(P1,P13,P13))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L11,(P1,P13,P13))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L11,(P1,P13,P13))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L15,(P2,P2,P3))
                  | L16 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                  | L8 => (L12,(P1,P5,P3))
                  | L9 => (L12,(P1,P5,P3))
                  | L10 => (L12,(P1,P5,P3))
                  | L11 => (L12,(P1,P5,P3))
                  | L12 => (L1,(P3,P4,P3))
                  | L13 => (L15,(P2,P2,P3))
                  | L14 => (L15,(P2,P2,P3))
                  | L15 => (L1,(P3,P4,P3))
                  | L16 => (L15,(P2,P2,P3))
                  | L17 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L15,(P2,P2,P3))
                  | L15 => (L15,(P2,P2,P3))
                  | L16 => (L15,(P2,P2,P3))
                  | L17 => (L15,(P2,P2,P3))
                  | L18 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L12,(P1,P3,P3))
                  | L9 => (L12,(P1,P3,P3))
                  | L10 => (L12,(P1,P3,P3))
                  | L11 => (L12,(P1,P3,P3))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L15,(P2,P3,P3))
                  | L14 => (L15,(P2,P3,P3))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L15,(P2,P3,P3))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L15,(P2,P3,P3))
                  | L19 => (L1,(P3,P3,P3))
                  | L20 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L1,(P3,P3,P3))
                  | L20 => (L1,(P3,P3,P3))
                  | L21 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L22 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P3))
                  | L1 => (L1,(P0,P0,P3))
                  | L2 => (L1,(P0,P0,P3))
                  | L3 => (L1,(P0,P0,P3))
                  | L4 => (L1,(P0,P0,P3))
                  | L5 => (L1,(P0,P0,P3))
                  | L6 => (L1,(P0,P0,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L10,(P1,P1,P7))
                  | L9 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P1,P7))
                  | L10 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L10,(P1,P1,P7))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L10,(P1,P1,P7))
                  | L11 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L10,(P1,P1,P7))
                  | L9 => (L10,(P1,P1,P7))
                  | L10 => (L10,(P1,P1,P7))
                  | L11 => (L10,(P1,P1,P7))
                  | L12 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L11,(P1,P11,P11))
                  | L8 => (L11,(P1,P11,P11))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L11,(P1,P11,P11))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L11,(P1,P11,P11))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L12,(P1,P3,P3))
                  | L9 => (L12,(P1,P3,P3))
                  | L10 => (L12,(P1,P3,P3))
                  | L11 => (L12,(P1,P3,P3))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L11,(P1,P13,P11))
                  | L8 => (L11,(P1,P13,P11))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L11,(P1,P13,P11))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L11,(P1,P13,P11))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P3))
                  | L1 => (L1,(P0,P4,P3))
                  | L2 => (L1,(P0,P4,P3))
                  | L3 => (L1,(P0,P4,P3))
                  | L4 => (L1,(P0,P4,P3))
                  | L5 => (L1,(P0,P4,P3))
                  | L6 => (L1,(P0,P4,P3))
                  | L7 => (L1,(P4,P4,P3))
                  | L8 => (L12,(P1,P5,P3))
                  | L9 => (L12,(P1,P5,P3))
                  | L10 => (L12,(P1,P5,P3))
                  | L11 => (L12,(P1,P5,P3))
                  | L12 => (L1,(P3,P4,P3))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L1,(P3,P4,P3))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L1,(P4,P4,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L13,(P2,P2,P7))
                  | L18 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L12,(P1,P3,P3))
                  | L9 => (L12,(P1,P3,P3))
                  | L10 => (L12,(P1,P3,P3))
                  | L11 => (L12,(P1,P3,P3))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L13,(P2,P10,P7))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L13,(P2,P10,P7))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L1,(P3,P3,P3))
                  | L20 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L10,(P1,P9,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L10,(P1,P9,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L1,(P3,P3,P3))
                  | L20 => (L1,(P3,P3,P3))
                  | L21 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L1,(P0,P3,P3))
                  | L1 => (L1,(P0,P3,P3))
                  | L2 => (L1,(P0,P3,P3))
                  | L3 => (L1,(P0,P3,P3))
                  | L4 => (L1,(P0,P3,P3))
                  | L5 => (L1,(P0,P3,P3))
                  | L6 => (L1,(P0,P3,P3))
                  | L7 => (L1,(P4,P3,P3))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L1,(P3,P3,P3))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L1,(P3,P3,P3))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L1,(P4,P3,P3))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L1,(P3,P3,P3))
                  | L20 => (L1,(P3,P3,P3))
                  | L21 => (L1,(P3,P3,P3))
                  | L22 => (L1,(P3,P3,P3))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L23 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                  | L6 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L7,(P1,P1,P4))
                  | L12 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L9,(P1,P14,P14))
                  | L8 => (L9,(P1,P14,P14))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L9,(P1,P14,P14))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L9,(P1,P14,P14))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P6,P4))
                  | L9 => (L7,(P1,P6,P4))
                  | L10 => (L7,(P1,P6,P4))
                  | L11 => (L7,(P1,P6,P4))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L14,(P2,P2,P14))
                  | L15 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L9,(P1,P12,P14))
                  | L8 => (L9,(P1,P12,P14))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L9,(P1,P12,P14))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L9,(P1,P12,P14))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L14,(P2,P2,P14))
                  | L16 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L14,(P2,P2,P14))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L14,(P2,P2,P14))
                  | L17 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L14,(P2,P2,P14))
                  | L15 => (L14,(P2,P2,P14))
                  | L16 => (L14,(P2,P2,P14))
                  | L17 => (L14,(P2,P2,P14))
                  | L18 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L9,(P1,P12,P14))
                  | L9 => (L9,(P1,P12,P14))
                  | L10 => (L9,(P1,P12,P14))
                  | L11 => (L9,(P1,P12,P14))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L18,(P2,P8,P9))
                  | L14 => (L9,(P14,P12,P14))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L9,(P12,P12,P14))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L18,(P2,P8,P9))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L6,(P13,P13,P14))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L10,(P1,P7,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L10,(P1,P7,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L14,(P2,P11,P14))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L14,(P2,P11,P14))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                  | L22 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L24 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                  | L6 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L7,(P1,P1,P4))
                  | L12 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L11,(P1,P11,P11))
                  | L8 => (L11,(P1,P11,P11))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L11,(P1,P11,P11))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L11,(P1,P11,P11))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P6,P4))
                  | L9 => (L7,(P1,P6,P4))
                  | L10 => (L7,(P1,P6,P4))
                  | L11 => (L7,(P1,P6,P4))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L14,(P2,P2,P11))
                  | L15 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L11,(P1,P13,P11))
                  | L8 => (L11,(P1,P13,P11))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L11,(P1,P13,P11))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L11,(P1,P13,P11))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L14,(P2,P2,P11))
                  | L16 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L14,(P2,P2,P11))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L14,(P2,P2,P11))
                  | L17 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L14,(P2,P2,P11))
                  | L15 => (L14,(P2,P2,P11))
                  | L16 => (L14,(P2,P2,P11))
                  | L17 => (L14,(P2,P2,P11))
                  | L18 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L8,(P1,P10,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L8,(P1,P10,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L11,(P1,P13,P11))
                  | L9 => (L11,(P1,P13,P11))
                  | L10 => (L11,(P1,P13,P11))
                  | L11 => (L11,(P1,P13,P11))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L18,(P2,P9,P8))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L18,(P2,P9,P8))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                  | L22 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L14,(P2,P14,P11))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L14,(P2,P14,P11))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                  | L24 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L25 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                  | L6 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L7,(P1,P1,P4))
                  | L12 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L11,(P1,P11,P13))
                  | L8 => (L11,(P1,P11,P13))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L11,(P1,P11,P13))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L11,(P1,P11,P13))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P6,P4))
                  | L9 => (L7,(P1,P6,P4))
                  | L10 => (L7,(P1,P6,P4))
                  | L11 => (L7,(P1,P6,P4))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L11,(P1,P13,P13))
                  | L8 => (L11,(P1,P13,P13))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L11,(P1,P13,P13))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L11,(P1,P13,P13))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L13,(P2,P2,P10))
                  | L18 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L8,(P1,P8,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L8,(P1,P8,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L16,(P2,P12,P13))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L16,(P2,P12,P13))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L11,(P1,P11,P13))
                  | L9 => (L11,(P1,P11,P13))
                  | L10 => (L11,(P1,P11,P13))
                  | L11 => (L11,(P1,P11,P13))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                  | L22 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                  | L24 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                  | L24 => (L1,(P4,P4,P4))
                  | L25 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L26 => match l2 with
        | L0 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L1,(P0,P0,P4))
                  | L1 => (L1,(P0,P0,P4))
                  | L2 => (L1,(P0,P0,P4))
                  | L3 => (L1,(P0,P0,P4))
                  | L4 => (L1,(P0,P0,P4))
                  | L5 => (L1,(P0,P0,P4))
                  | L6 => (L1,(P0,P0,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L7,(P1,P1,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P1,P4))
                  | L9 => (L7,(P1,P1,P4))
                  | L10 => (L7,(P1,P1,P4))
                  | L11 => (L7,(P1,P1,P4))
                  | L12 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L9,(P1,P14,P12))
                  | L8 => (L9,(P1,P14,P12))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L9,(P1,P14,P12))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L9,(P1,P14,P12))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L7,(P1,P6,P4))
                  | L9 => (L7,(P1,P6,P4))
                  | L10 => (L7,(P1,P6,P4))
                  | L11 => (L7,(P1,P6,P4))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L9,(P1,P12,P12))
                  | L8 => (L9,(P1,P12,P12))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L9,(P1,P12,P12))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L9,(P1,P12,P12))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L13,(P2,P2,P7))
                  | L18 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L9,(P1,P14,P12))
                  | L9 => (L9,(P1,P14,P12))
                  | L10 => (L9,(P1,P14,P12))
                  | L11 => (L9,(P1,P14,P12))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L10,(P1,P9,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L10,(P1,P9,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L16,(P2,P13,P12))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L16,(P2,P13,P12))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L1,(P0,P3,P4))
                  | L1 => (L1,(P0,P3,P4))
                  | L2 => (L1,(P0,P3,P4))
                  | L3 => (L1,(P0,P3,P4))
                  | L4 => (L1,(P0,P3,P4))
                  | L5 => (L1,(P0,P3,P4))
                  | L6 => (L1,(P0,P3,P4))
                  | L7 => (L1,(P4,P3,P4))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L1,(P3,P3,P4))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L1,(P3,P3,P4))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L1,(P4,P3,P4))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L1,(P3,P3,P4))
                  | L20 => (L1,(P3,P3,P4))
                  | L21 => (L1,(P3,P3,P4))
                  | L22 => (L1,(P3,P3,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                  | L24 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L7,(P1,P4,P4))
                  | L9 => (L7,(P1,P4,P4))
                  | L10 => (L7,(P1,P4,P4))
                  | L11 => (L7,(P1,P4,P4))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L13,(P2,P10,P7))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L13,(P2,P10,P7))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                  | L24 => (L1,(P4,P4,P4))
                  | L25 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L1,(P0,P4,P4))
                  | L1 => (L1,(P0,P4,P4))
                  | L2 => (L1,(P0,P4,P4))
                  | L3 => (L1,(P0,P4,P4))
                  | L4 => (L1,(P0,P4,P4))
                  | L5 => (L1,(P0,P4,P4))
                  | L6 => (L1,(P0,P4,P4))
                  | L7 => (L1,(P4,P4,P4))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L1,(P3,P4,P4))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L1,(P3,P4,P4))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L1,(P4,P4,P4))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L1,(P3,P4,P4))
                  | L20 => (L1,(P3,P4,P4))
                  | L21 => (L1,(P3,P4,P4))
                  | L22 => (L1,(P3,P4,P4))
                  | L23 => (L1,(P4,P4,P4))
                  | L24 => (L1,(P4,P4,P4))
                  | L25 => (L1,(P4,P4,P4))
                  | L26 => (L1,(P4,P4,P4))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L27 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                  | L6 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L8,(P1,P1,P8))
                  | L9 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L8,(P1,P1,P8))
                  | L10 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L8,(P1,P1,P8))
                  | L8 => (L8,(P1,P1,P8))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L8,(P1,P1,P8))
                  | L11 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L8,(P1,P1,P8))
                  | L9 => (L8,(P1,P1,P8))
                  | L10 => (L8,(P1,P1,P8))
                  | L11 => (L8,(P1,P1,P8))
                  | L12 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L9,(P1,P14,P14))
                  | L8 => (L9,(P1,P14,P14))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L9,(P1,P14,P14))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L9,(P1,P14,P14))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L2,(P5,P6,P5))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L14,(P2,P2,P14))
                  | L15 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L9,(P1,P12,P14))
                  | L8 => (L9,(P1,P12,P14))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L9,(P1,P12,P14))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L9,(P1,P12,P14))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L14,(P2,P2,P14))
                  | L16 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L12,(P1,P5,P5))
                  | L9 => (L12,(P1,P5,P5))
                  | L10 => (L12,(P1,P5,P5))
                  | L11 => (L12,(P1,P5,P5))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L14,(P2,P2,P14))
                  | L14 => (L14,(P2,P2,P14))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L14,(P2,P2,P14))
                  | L17 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L14,(P2,P2,P14))
                  | L15 => (L14,(P2,P2,P14))
                  | L16 => (L14,(P2,P2,P14))
                  | L17 => (L14,(P2,P2,P14))
                  | L18 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L8,(P1,P10,P8))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L8,(P1,P10,P8))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L9,(P14,P12,P14))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L9,(P12,P12,P14))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L8,(P10,P8,P8))
                  | L20 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L18,(P2,P9,P8))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L6,(P13,P13,P14))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L18,(P2,P9,P8))
                  | L19 => (L6,(P14,P13,P14))
                  | L20 => (L12,(P3,P3,P5))
                  | L21 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L14,(P2,P11,P14))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L14,(P2,P11,P14))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L12,(P3,P3,P5))
                  | L20 => (L3,(P8,P7,P8))
                  | L21 => (L12,(P3,P3,P5))
                  | L22 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L9,(P1,P14,P14))
                  | L8 => (L9,(P1,P14,P14))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L9,(P1,P14,P14))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L9,(P1,P14,P14))
                  | L13 => (L14,(P2,P14,P14))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L14,(P2,P14,P14))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L14,(P2,P14,P14))
                  | L18 => (L14,(P2,P14,P14))
                  | L19 => (L6,(P14,P14,P14))
                  | L20 => (L9,(P12,P14,P14))
                  | L21 => (L6,(P13,P14,P14))
                  | L22 => (L14,(P11,P14,P14))
                  | L23 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L14,(P2,P11,P14))
                  | L15 => (L14,(P2,P11,P14))
                  | L16 => (L14,(P2,P11,P14))
                  | L17 => (L14,(P2,P11,P14))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L8,(P10,P8,P8))
                  | L20 => (L3,(P8,P8,P8))
                  | L21 => (L18,(P9,P8,P8))
                  | L22 => (L3,(P7,P8,P8))
                  | L23 => (L14,(P14,P11,P14))
                  | L24 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L8,(P1,P10,P8))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L8,(P1,P10,P8))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L6,(P13,P13,P14))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L6,(P14,P13,P14))
                  | L20 => (L8,(P8,P10,P8))
                  | L21 => (L6,(P13,P13,P14))
                  | L22 => (L19,(P3,P10,P14))
                  | L23 => (L6,(P14,P13,P14))
                  | L24 => (L8,(P8,P10,P8))
                  | L25 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L9,(P1,P12,P14))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L9,(P1,P12,P14))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L9,(P1,P12,P14))
                  | L12 => (L9,(P1,P12,P14))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L9,(P14,P12,P14))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L9,(P12,P12,P14))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L9,(P14,P12,P14))
                  | L20 => (L3,(P8,P7,P8))
                  | L21 => (L20,(P3,P12,P8))
                  | L22 => (L3,(P7,P7,P8))
                  | L23 => (L9,(P14,P12,P14))
                  | L24 => (L3,(P8,P7,P8))
                  | L25 => (L17,(P4,P4,P5))
                  | L26 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L6,(P14,P14,P14))
                  | L20 => (L3,(P8,P8,P8))
                  | L21 => (L6,(P13,P14,P14))
                  | L22 => (L3,(P7,P8,P8))
                  | L23 => (L6,(P14,P14,P14))
                  | L24 => (L3,(P8,P8,P8))
                  | L25 => (L6,(P13,P14,P14))
                  | L26 => (L3,(P7,P8,P8))
                  | L27 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L28 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                  | L6 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L10,(P1,P1,P7))
                  | L9 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P1,P7))
                  | L10 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L10,(P1,P1,P7))
                  | L8 => (L10,(P1,P1,P7))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L10,(P1,P1,P7))
                  | L11 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L10,(P1,P1,P7))
                  | L9 => (L10,(P1,P1,P7))
                  | L10 => (L10,(P1,P1,P7))
                  | L11 => (L10,(P1,P1,P7))
                  | L12 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L11,(P1,P11,P13))
                  | L8 => (L11,(P1,P11,P13))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L11,(P1,P11,P13))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L11,(P1,P11,P13))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L2,(P5,P6,P5))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L11,(P1,P13,P13))
                  | L8 => (L11,(P1,P13,P13))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L11,(P1,P13,P13))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L11,(P1,P13,P13))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L12,(P1,P5,P5))
                  | L9 => (L12,(P1,P5,P5))
                  | L10 => (L12,(P1,P5,P5))
                  | L11 => (L12,(P1,P5,P5))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L13,(P2,P2,P7))
                  | L18 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L16,(P2,P12,P13))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L16,(P2,P12,P13))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L12,(P3,P3,P5))
                  | L20 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L10,(P1,P9,P7))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L10,(P1,P9,P7))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L12,(P3,P3,P5))
                  | L21 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L12,(P3,P3,P5))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L10,(P9,P7,P7))
                  | L22 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L10,(P1,P9,P7))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L10,(P1,P9,P7))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L6,(P14,P14,P13))
                  | L20 => (L21,(P3,P9,P13))
                  | L21 => (L6,(P13,P14,P13))
                  | L22 => (L10,(P7,P9,P7))
                  | L23 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L11,(P1,P11,P13))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L11,(P1,P11,P13))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L11,(P1,P11,P13))
                  | L12 => (L11,(P1,P11,P13))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L22,(P3,P11,P7))
                  | L20 => (L3,(P8,P8,P7))
                  | L21 => (L11,(P13,P11,P13))
                  | L22 => (L3,(P7,P8,P7))
                  | L23 => (L17,(P4,P4,P5))
                  | L24 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L11,(P1,P13,P13))
                  | L8 => (L11,(P1,P13,P13))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L11,(P1,P13,P13))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L11,(P1,P13,P13))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L13,(P2,P10,P7))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L13,(P2,P10,P7))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L16,(P12,P13,P13))
                  | L21 => (L6,(P13,P13,P13))
                  | L22 => (L11,(P11,P13,P13))
                  | L23 => (L6,(P14,P13,P13))
                  | L24 => (L11,(P11,P13,P13))
                  | L25 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L13,(P2,P7,P7))
                  | L15 => (L13,(P2,P7,P7))
                  | L16 => (L13,(P2,P7,P7))
                  | L17 => (L13,(P2,P7,P7))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L13,(P10,P7,P7))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L10,(P9,P7,P7))
                  | L22 => (L3,(P7,P7,P7))
                  | L23 => (L10,(P9,P7,P7))
                  | L24 => (L3,(P8,P7,P7))
                  | L25 => (L13,(P10,P7,P7))
                  | L26 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L6,(P14,P14,P13))
                  | L20 => (L3,(P8,P8,P7))
                  | L21 => (L6,(P13,P14,P13))
                  | L22 => (L3,(P7,P8,P7))
                  | L23 => (L6,(P14,P14,P13))
                  | L24 => (L3,(P8,P8,P7))
                  | L25 => (L6,(P13,P14,P13))
                  | L26 => (L3,(P7,P8,P7))
                  | L27 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L6,(P13,P13,P13))
                  | L22 => (L3,(P7,P7,P7))
                  | L23 => (L6,(P14,P13,P13))
                  | L24 => (L3,(P8,P7,P7))
                  | L25 => (L6,(P13,P13,P13))
                  | L26 => (L3,(P7,P7,P7))
                  | L27 => (L2,(P5,P5,P5))
                  | L28 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L29 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                  | L6 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L10,(P1,P1,P9))
                  | L9 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P1,P9))
                  | L10 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L10,(P1,P1,P9))
                  | L8 => (L10,(P1,P1,P9))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L10,(P1,P1,P9))
                  | L11 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L10,(P1,P1,P9))
                  | L9 => (L10,(P1,P1,P9))
                  | L10 => (L10,(P1,P1,P9))
                  | L11 => (L10,(P1,P1,P9))
                  | L12 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L11,(P1,P11,P11))
                  | L8 => (L11,(P1,P11,P11))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L11,(P1,P11,P11))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L11,(P1,P11,P11))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L2,(P5,P6,P5))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L14,(P2,P2,P11))
                  | L15 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L11,(P1,P13,P11))
                  | L8 => (L11,(P1,P13,P11))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L11,(P1,P13,P11))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L11,(P1,P13,P11))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L14,(P2,P2,P11))
                  | L16 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L12,(P1,P5,P5))
                  | L9 => (L12,(P1,P5,P5))
                  | L10 => (L12,(P1,P5,P5))
                  | L11 => (L12,(P1,P5,P5))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L14,(P2,P2,P11))
                  | L14 => (L14,(P2,P2,P11))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L14,(P2,P2,P11))
                  | L17 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L14,(P2,P2,P11))
                  | L15 => (L14,(P2,P2,P11))
                  | L16 => (L14,(P2,P2,P11))
                  | L17 => (L14,(P2,P2,P11))
                  | L18 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L18,(P2,P8,P9))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L18,(P2,P8,P9))
                  | L19 => (L12,(P3,P3,P5))
                  | L20 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L12,(P3,P3,P5))
                  | L21 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L10,(P1,P7,P9))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L10,(P1,P7,P9))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L12,(P3,P3,P5))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L14,(P2,P14,P11))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L14,(P2,P14,P11))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L18,(P8,P9,P9))
                  | L21 => (L4,(P9,P9,P9))
                  | L22 => (L10,(P7,P9,P9))
                  | L23 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L11,(P1,P11,P11))
                  | L8 => (L11,(P1,P11,P11))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L11,(P1,P11,P11))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L11,(P1,P11,P11))
                  | L13 => (L14,(P2,P11,P11))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L14,(P2,P11,P11))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L14,(P2,P11,P11))
                  | L18 => (L14,(P2,P11,P11))
                  | L19 => (L14,(P14,P11,P11))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L11,(P13,P11,P11))
                  | L22 => (L5,(P11,P11,P11))
                  | L23 => (L14,(P14,P11,P11))
                  | L24 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L11,(P1,P13,P11))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L11,(P1,P13,P11))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L11,(P1,P13,P11))
                  | L12 => (L11,(P1,P13,P11))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L4,(P10,P10,P9))
                  | L20 => (L21,(P3,P13,P9))
                  | L21 => (L4,(P9,P10,P9))
                  | L22 => (L11,(P11,P13,P11))
                  | L23 => (L4,(P9,P10,P9))
                  | L24 => (L11,(P11,P13,P11))
                  | L25 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L10,(P1,P7,P9))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L10,(P1,P7,P9))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L22,(P3,P7,P11))
                  | L20 => (L5,(P12,P12,P11))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L5,(P11,P12,P11))
                  | L23 => (L10,(P9,P7,P9))
                  | L24 => (L5,(P11,P12,P11))
                  | L25 => (L17,(P4,P4,P5))
                  | L26 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L12,(P1,P5,P5))
                  | L9 => (L12,(P1,P5,P5))
                  | L10 => (L12,(P1,P5,P5))
                  | L11 => (L12,(P1,P5,P5))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L14,(P2,P14,P11))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L14,(P2,P14,P11))
                  | L19 => (L12,(P3,P5,P5))
                  | L20 => (L12,(P3,P5,P5))
                  | L21 => (L12,(P3,P5,P5))
                  | L22 => (L12,(P3,P5,P5))
                  | L23 => (L14,(P14,P14,P11))
                  | L24 => (L14,(P11,P14,P11))
                  | L25 => (L17,(P4,P5,P5))
                  | L26 => (L17,(P4,P5,P5))
                  | L27 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L10,(P1,P7,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L10,(P1,P7,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L12,(P3,P5,P5))
                  | L20 => (L12,(P3,P5,P5))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L10,(P7,P7,P9))
                  | L23 => (L10,(P9,P7,P9))
                  | L24 => (L11,(P11,P13,P11))
                  | L25 => (L11,(P13,P13,P11))
                  | L26 => (L10,(P7,P7,P9))
                  | L27 => (L2,(P5,P5,P5))
                  | L28 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L29 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L4,(P9,P9,P9))
                  | L22 => (L5,(P11,P11,P11))
                  | L23 => (L4,(P9,P9,P9))
                  | L24 => (L5,(P11,P11,P11))
                  | L25 => (L4,(P10,P9,P9))
                  | L26 => (L5,(P12,P11,P11))
                  | L27 => (L2,(P5,P5,P5))
                  | L28 => (L2,(P5,P5,P5))
                  | L29 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L30 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P5))
                  | L1 => (L2,(P0,P0,P5))
                  | L2 => (L2,(P0,P0,P5))
                  | L3 => (L2,(P0,P0,P5))
                  | L4 => (L2,(P0,P0,P5))
                  | L5 => (L2,(P0,P0,P5))
                  | L6 => (L2,(P0,P0,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L8,(P1,P1,P10))
                  | L9 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L8,(P1,P1,P10))
                  | L10 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L8,(P1,P1,P10))
                  | L8 => (L8,(P1,P1,P10))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L8,(P1,P1,P10))
                  | L11 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L8,(P1,P1,P10))
                  | L9 => (L8,(P1,P1,P10))
                  | L10 => (L8,(P1,P1,P10))
                  | L11 => (L8,(P1,P1,P10))
                  | L12 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L9,(P1,P14,P12))
                  | L8 => (L9,(P1,P14,P12))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L9,(P1,P14,P12))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L9,(P1,P14,P12))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P5))
                  | L1 => (L2,(P0,P6,P5))
                  | L2 => (L2,(P0,P6,P5))
                  | L3 => (L2,(P0,P6,P5))
                  | L4 => (L2,(P0,P6,P5))
                  | L5 => (L2,(P0,P6,P5))
                  | L6 => (L2,(P0,P6,P5))
                  | L7 => (L2,(P6,P6,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L2,(P5,P6,P5))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L2,(P6,P6,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L9,(P1,P12,P12))
                  | L8 => (L9,(P1,P12,P12))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L9,(P1,P12,P12))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L9,(P1,P12,P12))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L12,(P1,P5,P5))
                  | L9 => (L12,(P1,P5,P5))
                  | L10 => (L12,(P1,P5,P5))
                  | L11 => (L12,(P1,P5,P5))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L13,(P2,P2,P10))
                  | L18 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L8,(P1,P8,P10))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L8,(P1,P8,P10))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L12,(P1,P3,P5))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L12,(P1,P3,P5))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L16,(P2,P13,P12))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L16,(P2,P13,P12))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L12,(P3,P3,P5))
                  | L21 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L12,(P1,P3,P5))
                  | L8 => (L12,(P1,P3,P5))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L12,(P1,P3,P5))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L12,(P1,P3,P5))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L12,(P3,P3,P5))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L12,(P5,P3,P5))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L12,(P3,P3,P5))
                  | L20 => (L5,(P12,P11,P12))
                  | L21 => (L12,(P3,P3,P5))
                  | L22 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L9,(P1,P14,P12))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L9,(P1,P14,P12))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L9,(P1,P14,P12))
                  | L12 => (L9,(P1,P14,P12))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L9,(P12,P14,P12))
                  | L21 => (L4,(P9,P9,P10))
                  | L22 => (L19,(P3,P14,P10))
                  | L23 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L8,(P1,P8,P10))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L8,(P1,P8,P10))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L17,(P2,P4,P5))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L17,(P2,P4,P5))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L5,(P12,P11,P12))
                  | L21 => (L20,(P3,P8,P12))
                  | L22 => (L5,(P11,P11,P12))
                  | L23 => (L17,(P4,P4,P5))
                  | L24 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L13,(P2,P10,P10))
                  | L15 => (L13,(P2,P10,P10))
                  | L16 => (L13,(P2,P10,P10))
                  | L17 => (L13,(P2,P10,P10))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                  | L20 => (L8,(P8,P10,P10))
                  | L21 => (L4,(P9,P10,P10))
                  | L22 => (L13,(P7,P10,P10))
                  | L23 => (L4,(P9,P10,P10))
                  | L24 => (L8,(P8,P10,P10))
                  | L25 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L9,(P1,P12,P12))
                  | L8 => (L9,(P1,P12,P12))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L9,(P1,P12,P12))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L9,(P1,P12,P12))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L13,(P2,P7,P10))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L13,(P2,P7,P10))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L9,(P14,P12,P12))
                  | L20 => (L5,(P12,P12,P12))
                  | L21 => (L16,(P13,P12,P12))
                  | L22 => (L5,(P11,P12,P12))
                  | L23 => (L9,(P14,P12,P12))
                  | L24 => (L5,(P11,P12,P12))
                  | L25 => (L13,(P10,P7,P10))
                  | L26 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L8,(P1,P8,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L8,(P1,P8,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L8,(P8,P8,P10))
                  | L21 => (L12,(P3,P5,P5))
                  | L22 => (L12,(P3,P5,P5))
                  | L23 => (L9,(P14,P14,P12))
                  | L24 => (L8,(P8,P8,P10))
                  | L25 => (L8,(P10,P8,P10))
                  | L26 => (L9,(P12,P14,P12))
                  | L27 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L12,(P1,P5,P5))
                  | L9 => (L12,(P1,P5,P5))
                  | L10 => (L12,(P1,P5,P5))
                  | L11 => (L12,(P1,P5,P5))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L13,(P2,P7,P10))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L13,(P2,P7,P10))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L12,(P3,P5,P5))
                  | L20 => (L12,(P3,P5,P5))
                  | L21 => (L12,(P3,P5,P5))
                  | L22 => (L12,(P3,P5,P5))
                  | L23 => (L17,(P4,P5,P5))
                  | L24 => (L17,(P4,P5,P5))
                  | L25 => (L13,(P10,P7,P10))
                  | L26 => (L13,(P7,P7,P10))
                  | L27 => (L2,(P5,P5,P5))
                  | L28 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L29 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L5,(P12,P11,P12))
                  | L21 => (L4,(P9,P9,P10))
                  | L22 => (L5,(P11,P11,P12))
                  | L23 => (L4,(P9,P9,P10))
                  | L24 => (L5,(P11,P11,P12))
                  | L25 => (L4,(P10,P9,P10))
                  | L26 => (L5,(P12,P11,P12))
                  | L27 => (L2,(P5,P5,P5))
                  | L28 => (L2,(P5,P5,P5))
                  | L29 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
        | L30 => match l1 with
                  | L0 => (L2,(P0,P5,P5))
                  | L1 => (L2,(P0,P5,P5))
                  | L2 => (L2,(P0,P5,P5))
                  | L3 => (L2,(P0,P5,P5))
                  | L4 => (L2,(P0,P5,P5))
                  | L5 => (L2,(P0,P5,P5))
                  | L6 => (L2,(P0,P5,P5))
                  | L7 => (L2,(P6,P5,P5))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L2,(P5,P5,P5))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L2,(P6,P5,P5))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L2,(P5,P5,P5))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                  | L20 => (L5,(P12,P12,P12))
                  | L21 => (L4,(P9,P10,P10))
                  | L22 => (L5,(P11,P12,P12))
                  | L23 => (L4,(P9,P10,P10))
                  | L24 => (L5,(P11,P12,P12))
                  | L25 => (L4,(P10,P10,P10))
                  | L26 => (L5,(P12,P12,P12))
                  | L27 => (L2,(P5,P5,P5))
                  | L28 => (L2,(P5,P5,P5))
                  | L29 => (L2,(P5,P5,P5))
                  | L30 => (L2,(P5,P5,P5))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L31 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                  | L6 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L7,(P1,P1,P6))
                  | L12 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L9,(P1,P14,P14))
                  | L8 => (L9,(P1,P14,P14))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L9,(P1,P14,P14))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L9,(P1,P14,P14))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L9,(P1,P12,P14))
                  | L8 => (L9,(P1,P12,P14))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L9,(P1,P12,P14))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L9,(P1,P12,P14))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L13,(P2,P2,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L13,(P2,P2,P7))
                  | L15 => (L13,(P2,P2,P7))
                  | L16 => (L13,(P2,P2,P7))
                  | L17 => (L13,(P2,P2,P7))
                  | L18 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L9,(P1,P14,P14))
                  | L8 => (L9,(P1,P14,P14))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L9,(P1,P14,P14))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L9,(P1,P14,P14))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L13,(P2,P10,P7))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L13,(P2,P10,P7))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L9,(P1,P12,P14))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L9,(P1,P12,P14))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L9,(P1,P12,P14))
                  | L12 => (L9,(P1,P12,P14))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L9,(P14,P12,P14))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L9,(P12,P12,P14))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L9,(P14,P12,P14))
                  | L20 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L10,(P1,P9,P7))
                  | L8 => (L10,(P1,P9,P7))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L10,(P1,P9,P7))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L10,(P1,P9,P7))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L6,(P13,P13,P14))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L6,(P14,P13,P14))
                  | L20 => (L15,(P3,P3,P6))
                  | L21 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L10,(P1,P7,P7))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L10,(P1,P7,P7))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L10,(P1,P7,P7))
                  | L12 => (L10,(P1,P7,P7))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L13,(P2,P7,P7))
                  | L15 => (L13,(P2,P7,P7))
                  | L16 => (L13,(P2,P7,P7))
                  | L17 => (L13,(P2,P7,P7))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L13,(P10,P7,P7))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L10,(P9,P7,P7))
                  | L22 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L6,(P0,P14,P14))
                  | L1 => (L6,(P0,P14,P14))
                  | L2 => (L6,(P0,P14,P14))
                  | L3 => (L6,(P0,P14,P14))
                  | L4 => (L6,(P0,P14,P14))
                  | L5 => (L6,(P0,P14,P14))
                  | L6 => (L6,(P0,P14,P14))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L6,(P14,P14,P14))
                  | L20 => (L9,(P12,P14,P14))
                  | L21 => (L6,(P13,P14,P14))
                  | L22 => (L10,(P7,P9,P7))
                  | L23 => (L6,(P14,P14,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L3,(P0,P8,P7))
                  | L1 => (L3,(P0,P8,P7))
                  | L2 => (L3,(P0,P8,P7))
                  | L3 => (L3,(P0,P8,P7))
                  | L4 => (L3,(P0,P8,P7))
                  | L5 => (L3,(P0,P8,P7))
                  | L6 => (L3,(P0,P8,P7))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L14,(P2,P11,P14))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L14,(P2,P11,P14))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L14,(P14,P11,P14))
                  | L20 => (L3,(P8,P8,P7))
                  | L21 => (L22,(P3,P11,P7))
                  | L22 => (L3,(P7,P8,P7))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L3,(P8,P8,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L6,(P0,P13,P14))
                  | L1 => (L6,(P0,P13,P14))
                  | L2 => (L6,(P0,P13,P14))
                  | L3 => (L6,(P0,P13,P14))
                  | L4 => (L6,(P0,P13,P14))
                  | L5 => (L6,(P0,P13,P14))
                  | L6 => (L6,(P0,P13,P14))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L6,(P13,P13,P14))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L6,(P14,P13,P14))
                  | L20 => (L19,(P3,P10,P14))
                  | L21 => (L6,(P13,P13,P14))
                  | L22 => (L13,(P7,P10,P7))
                  | L23 => (L6,(P14,P13,P14))
                  | L24 => (L7,(P4,P4,P6))
                  | L25 => (L6,(P13,P13,P14))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L3,(P0,P7,P7))
                  | L1 => (L3,(P0,P7,P7))
                  | L2 => (L3,(P0,P7,P7))
                  | L3 => (L3,(P0,P7,P7))
                  | L4 => (L3,(P0,P7,P7))
                  | L5 => (L3,(P0,P7,P7))
                  | L6 => (L3,(P0,P7,P7))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L9,(P14,P12,P14))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L9,(P12,P12,P14))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L9,(P14,P12,P14))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L10,(P9,P7,P7))
                  | L22 => (L3,(P7,P7,P7))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L3,(P8,P7,P7))
                  | L25 => (L7,(P4,P4,P6))
                  | L26 => (L3,(P7,P7,P7))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L3,(P8,P8,P7))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L3,(P7,P8,P7))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L3,(P7,P8,P7))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L3,(P8,P8,P7))
                  | L19 => (L6,(P14,P14,P14))
                  | L20 => (L3,(P8,P8,P7))
                  | L21 => (L6,(P13,P14,P14))
                  | L22 => (L3,(P7,P8,P7))
                  | L23 => (L6,(P14,P14,P14))
                  | L24 => (L3,(P8,P8,P7))
                  | L25 => (L6,(P13,P14,P14))
                  | L26 => (L3,(P7,P8,P7))
                  | L27 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L6,(P14,P13,P14))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L6,(P13,P13,P14))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L6,(P14,P13,P14))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L6,(P13,P13,P14))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L6,(P14,P13,P14))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L6,(P13,P13,P14))
                  | L22 => (L3,(P7,P7,P7))
                  | L23 => (L6,(P14,P13,P14))
                  | L24 => (L3,(P8,P7,P7))
                  | L25 => (L6,(P13,P13,P14))
                  | L26 => (L3,(P7,P7,P7))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L29 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L10,(P1,P9,P7))
                  | L9 => (L10,(P1,P9,P7))
                  | L10 => (L10,(P1,P9,P7))
                  | L11 => (L10,(P1,P9,P7))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L10,(P7,P9,P7))
                  | L14 => (L14,(P2,P11,P14))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L14,(P2,P11,P14))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L10,(P9,P9,P7))
                  | L19 => (L14,(P14,P11,P14))
                  | L20 => (L22,(P3,P11,P7))
                  | L21 => (L10,(P9,P9,P7))
                  | L22 => (L10,(P7,P9,P7))
                  | L23 => (L10,(P9,P9,P7))
                  | L24 => (L14,(P11,P11,P14))
                  | L25 => (L23,(P4,P9,P14))
                  | L26 => (L10,(P7,P9,P7))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L30 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L9,(P1,P12,P14))
                  | L9 => (L9,(P1,P12,P14))
                  | L10 => (L9,(P1,P12,P14))
                  | L11 => (L9,(P1,P12,P14))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L13,(P2,P10,P7))
                  | L14 => (L9,(P14,P12,P14))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L9,(P12,P12,P14))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L13,(P2,P10,P7))
                  | L19 => (L9,(P14,P12,P14))
                  | L20 => (L9,(P12,P12,P14))
                  | L21 => (L19,(P3,P10,P14))
                  | L22 => (L13,(P7,P10,P7))
                  | L23 => (L9,(P14,P12,P14))
                  | L24 => (L26,(P4,P12,P7))
                  | L25 => (L13,(P10,P10,P7))
                  | L26 => (L9,(P12,P12,P14))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                  | L30 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L31 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L3,(P8,P7,P7))
                  | L9 => (L6,(P14,P14,P14))
                  | L10 => (L3,(P7,P7,P7))
                  | L11 => (L6,(P13,P14,P14))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L3,(P7,P7,P7))
                  | L14 => (L6,(P14,P14,P14))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L6,(P13,P14,P14))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L3,(P8,P7,P7))
                  | L19 => (L6,(P14,P14,P14))
                  | L20 => (L3,(P8,P7,P7))
                  | L21 => (L6,(P13,P14,P14))
                  | L22 => (L3,(P7,P7,P7))
                  | L23 => (L6,(P14,P14,P14))
                  | L24 => (L3,(P8,P7,P7))
                  | L25 => (L6,(P13,P14,P14))
                  | L26 => (L3,(P7,P7,P7))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L32 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                  | L6 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L7,(P1,P1,P6))
                  | L12 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L11,(P1,P11,P13))
                  | L8 => (L11,(P1,P11,P13))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L11,(P1,P11,P13))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L11,(P1,P11,P13))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L15,(P2,P2,P6))
                  | L15 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L11,(P1,P13,P13))
                  | L8 => (L11,(P1,P13,P13))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L11,(P1,P13,P13))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L11,(P1,P13,P13))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L15,(P2,P2,P6))
                  | L16 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L15,(P2,P2,P6))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L15,(P2,P2,P6))
                  | L17 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L15,(P2,P2,P6))
                  | L15 => (L15,(P2,P2,P6))
                  | L16 => (L15,(P2,P2,P6))
                  | L17 => (L15,(P2,P2,P6))
                  | L18 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L8,(P1,P10,P8))
                  | L8 => (L8,(P1,P10,P8))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L8,(P1,P10,P8))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L8,(P1,P10,P8))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L8,(P1,P8,P8))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L8,(P1,P8,P8))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L8,(P1,P8,P8))
                  | L12 => (L8,(P1,P8,P8))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L15,(P2,P3,P6))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L15,(P2,P3,P6))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L8,(P10,P8,P8))
                  | L20 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L11,(P1,P13,P13))
                  | L8 => (L11,(P1,P13,P13))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L11,(P1,P13,P13))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L11,(P1,P13,P13))
                  | L13 => (L15,(P2,P3,P6))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L15,(P2,P3,P6))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L15,(P3,P3,P6))
                  | L21 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L11,(P1,P11,P13))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L11,(P1,P11,P13))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L11,(P1,P11,P13))
                  | L12 => (L11,(P1,P11,P13))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L15,(P3,P3,P6))
                  | L20 => (L3,(P8,P7,P8))
                  | L21 => (L11,(P13,P11,P13))
                  | L22 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L6,(P0,P14,P13))
                  | L1 => (L6,(P0,P14,P13))
                  | L2 => (L6,(P0,P14,P13))
                  | L3 => (L6,(P0,P14,P13))
                  | L4 => (L6,(P0,P14,P13))
                  | L5 => (L6,(P0,P14,P13))
                  | L6 => (L6,(P0,P14,P13))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L18,(P2,P9,P8))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L18,(P2,P9,P8))
                  | L19 => (L6,(P14,P14,P13))
                  | L20 => (L18,(P8,P9,P8))
                  | L21 => (L6,(P13,P14,P13))
                  | L22 => (L21,(P3,P9,P13))
                  | L23 => (L6,(P14,P14,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L3,(P0,P8,P8))
                  | L1 => (L3,(P0,P8,P8))
                  | L2 => (L3,(P0,P8,P8))
                  | L3 => (L3,(P0,P8,P8))
                  | L4 => (L3,(P0,P8,P8))
                  | L5 => (L3,(P0,P8,P8))
                  | L6 => (L3,(P0,P8,P8))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L8,(P10,P8,P8))
                  | L20 => (L3,(P8,P8,P8))
                  | L21 => (L11,(P13,P11,P13))
                  | L22 => (L3,(P7,P8,P8))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L3,(P8,P8,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L6,(P0,P13,P13))
                  | L1 => (L6,(P0,P13,P13))
                  | L2 => (L6,(P0,P13,P13))
                  | L3 => (L6,(P0,P13,P13))
                  | L4 => (L6,(P0,P13,P13))
                  | L5 => (L6,(P0,P13,P13))
                  | L6 => (L6,(P0,P13,P13))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L8,(P8,P10,P8))
                  | L21 => (L6,(P13,P13,P13))
                  | L22 => (L11,(P11,P13,P13))
                  | L23 => (L6,(P14,P13,P13))
                  | L24 => (L7,(P4,P4,P6))
                  | L25 => (L6,(P13,P13,P13))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L3,(P0,P7,P8))
                  | L1 => (L3,(P0,P7,P8))
                  | L2 => (L3,(P0,P7,P8))
                  | L3 => (L3,(P0,P7,P8))
                  | L4 => (L3,(P0,P7,P8))
                  | L5 => (L3,(P0,P7,P8))
                  | L6 => (L3,(P0,P7,P8))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L16,(P2,P12,P13))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L16,(P2,P12,P13))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L20,(P3,P12,P8))
                  | L20 => (L3,(P8,P7,P8))
                  | L21 => (L16,(P13,P12,P13))
                  | L22 => (L3,(P7,P7,P8))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L3,(P8,P7,P8))
                  | L25 => (L7,(P4,P4,P6))
                  | L26 => (L3,(P7,P7,P8))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L6,(P14,P14,P13))
                  | L20 => (L3,(P8,P8,P8))
                  | L21 => (L6,(P13,P14,P13))
                  | L22 => (L3,(P7,P8,P8))
                  | L23 => (L6,(P14,P14,P13))
                  | L24 => (L3,(P8,P8,P8))
                  | L25 => (L6,(P13,P14,P13))
                  | L26 => (L3,(P7,P8,P8))
                  | L27 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L3,(P8,P7,P8))
                  | L21 => (L6,(P13,P13,P13))
                  | L22 => (L3,(P7,P7,P8))
                  | L23 => (L6,(P14,P13,P13))
                  | L24 => (L3,(P8,P7,P8))
                  | L25 => (L6,(P13,P13,P13))
                  | L26 => (L3,(P7,P7,P8))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L29 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L11,(P1,P11,P13))
                  | L9 => (L11,(P1,P11,P13))
                  | L10 => (L11,(P1,P11,P13))
                  | L11 => (L11,(P1,P11,P13))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L18,(P2,P9,P8))
                  | L14 => (L11,(P11,P11,P13))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L11,(P13,P11,P13))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L18,(P2,P9,P8))
                  | L19 => (L21,(P3,P9,P13))
                  | L20 => (L18,(P8,P9,P8))
                  | L21 => (L11,(P13,P11,P13))
                  | L22 => (L11,(P11,P11,P13))
                  | L23 => (L18,(P9,P9,P8))
                  | L24 => (L11,(P11,P11,P13))
                  | L25 => (L11,(P13,P11,P13))
                  | L26 => (L24,(P4,P11,P8))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L30 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L8,(P1,P10,P8))
                  | L9 => (L8,(P1,P10,P8))
                  | L10 => (L8,(P1,P10,P8))
                  | L11 => (L8,(P1,P10,P8))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L8,(P10,P10,P8))
                  | L14 => (L16,(P2,P12,P13))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L16,(P2,P12,P13))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L8,(P8,P10,P8))
                  | L19 => (L8,(P10,P10,P8))
                  | L20 => (L8,(P8,P10,P8))
                  | L21 => (L16,(P13,P12,P13))
                  | L22 => (L20,(P3,P12,P8))
                  | L23 => (L25,(P4,P10,P13))
                  | L24 => (L8,(P8,P10,P8))
                  | L25 => (L8,(P10,P10,P8))
                  | L26 => (L16,(P12,P12,P13))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                  | L30 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L31 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L3,(P8,P7,P8))
                  | L9 => (L6,(P14,P14,P13))
                  | L10 => (L3,(P7,P7,P8))
                  | L11 => (L6,(P13,P14,P13))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L3,(P7,P7,P8))
                  | L14 => (L6,(P14,P14,P13))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L6,(P13,P14,P13))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L3,(P8,P7,P8))
                  | L19 => (L6,(P14,P14,P13))
                  | L20 => (L3,(P8,P7,P8))
                  | L21 => (L6,(P13,P14,P13))
                  | L22 => (L3,(P7,P7,P8))
                  | L23 => (L6,(P14,P14,P13))
                  | L24 => (L3,(P8,P7,P8))
                  | L25 => (L6,(P13,P14,P13))
                  | L26 => (L3,(P7,P7,P8))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L32 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L3,(P8,P8,P8))
                  | L9 => (L6,(P14,P13,P13))
                  | L10 => (L3,(P7,P8,P8))
                  | L11 => (L6,(P13,P13,P13))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L3,(P7,P8,P8))
                  | L14 => (L6,(P14,P13,P13))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L6,(P13,P13,P13))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L3,(P8,P8,P8))
                  | L19 => (L6,(P14,P13,P13))
                  | L20 => (L3,(P8,P8,P8))
                  | L21 => (L6,(P13,P13,P13))
                  | L22 => (L3,(P7,P8,P8))
                  | L23 => (L6,(P14,P13,P13))
                  | L24 => (L3,(P8,P8,P8))
                  | L25 => (L6,(P13,P13,P13))
                  | L26 => (L3,(P7,P8,P8))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                  | L32 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L33 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                  | L6 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L7,(P1,P1,P6))
                  | L12 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L9,(P1,P14,P12))
                  | L8 => (L9,(P1,P14,P12))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L9,(P1,P14,P12))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L9,(P1,P14,P12))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L15,(P2,P2,P6))
                  | L15 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L9,(P1,P12,P12))
                  | L8 => (L9,(P1,P12,P12))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L9,(P1,P12,P12))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L9,(P1,P12,P12))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L15,(P2,P2,P6))
                  | L16 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L15,(P2,P2,P6))
                  | L14 => (L15,(P2,P2,P6))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L15,(P2,P2,P6))
                  | L17 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L15,(P2,P2,P6))
                  | L15 => (L15,(P2,P2,P6))
                  | L16 => (L15,(P2,P2,P6))
                  | L17 => (L15,(P2,P2,P6))
                  | L18 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L9,(P1,P14,P12))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L9,(P1,P14,P12))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L9,(P1,P14,P12))
                  | L12 => (L9,(P1,P14,P12))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L9,(P1,P12,P12))
                  | L8 => (L9,(P1,P12,P12))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L9,(P1,P12,P12))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L9,(P1,P12,P12))
                  | L13 => (L15,(P2,P3,P6))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L15,(P2,P3,P6))
                  | L19 => (L9,(P14,P12,P12))
                  | L20 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L10,(P1,P9,P9))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L10,(P1,P9,P9))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L10,(P1,P9,P9))
                  | L12 => (L10,(P1,P9,P9))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L15,(P2,P3,P6))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L15,(P2,P3,P6))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L15,(P3,P3,P6))
                  | L21 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L10,(P1,P7,P9))
                  | L8 => (L10,(P1,P7,P9))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L10,(P1,P7,P9))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L10,(P1,P7,P9))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L15,(P3,P3,P6))
                  | L20 => (L5,(P12,P11,P12))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L4,(P0,P9,P9))
                  | L1 => (L4,(P0,P9,P9))
                  | L2 => (L4,(P0,P9,P9))
                  | L3 => (L4,(P0,P9,P9))
                  | L4 => (L4,(P0,P9,P9))
                  | L5 => (L4,(P0,P9,P9))
                  | L6 => (L4,(P0,P9,P9))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L9,(P12,P14,P12))
                  | L21 => (L4,(P9,P9,P9))
                  | L22 => (L10,(P7,P9,P9))
                  | L23 => (L4,(P9,P9,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L5,(P0,P11,P12))
                  | L1 => (L5,(P0,P11,P12))
                  | L2 => (L5,(P0,P11,P12))
                  | L3 => (L5,(P0,P11,P12))
                  | L4 => (L5,(P0,P11,P12))
                  | L5 => (L5,(P0,P11,P12))
                  | L6 => (L5,(P0,P11,P12))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L18,(P2,P8,P9))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L18,(P2,P8,P9))
                  | L19 => (L20,(P3,P8,P12))
                  | L20 => (L5,(P12,P11,P12))
                  | L21 => (L18,(P9,P8,P9))
                  | L22 => (L5,(P11,P11,P12))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L5,(P11,P11,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L4,(P0,P10,P9))
                  | L1 => (L4,(P0,P10,P9))
                  | L2 => (L4,(P0,P10,P9))
                  | L3 => (L4,(P0,P10,P9))
                  | L4 => (L4,(P0,P10,P9))
                  | L5 => (L4,(P0,P10,P9))
                  | L6 => (L4,(P0,P10,P9))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L16,(P2,P13,P12))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L16,(P2,P13,P12))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L4,(P10,P10,P9))
                  | L20 => (L16,(P12,P13,P12))
                  | L21 => (L4,(P9,P10,P9))
                  | L22 => (L21,(P3,P13,P9))
                  | L23 => (L4,(P9,P10,P9))
                  | L24 => (L7,(P4,P4,P6))
                  | L25 => (L4,(P10,P10,P9))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L5,(P0,P12,P12))
                  | L1 => (L5,(P0,P12,P12))
                  | L2 => (L5,(P0,P12,P12))
                  | L3 => (L5,(P0,P12,P12))
                  | L4 => (L5,(P0,P12,P12))
                  | L5 => (L5,(P0,P12,P12))
                  | L6 => (L5,(P0,P12,P12))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L9,(P14,P12,P12))
                  | L20 => (L5,(P12,P12,P12))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L5,(P11,P12,P12))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L5,(P11,P12,P12))
                  | L25 => (L7,(P4,P4,P6))
                  | L26 => (L5,(P12,P12,P12))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L9,(P1,P14,P12))
                  | L9 => (L9,(P1,P14,P12))
                  | L10 => (L9,(P1,P14,P12))
                  | L11 => (L9,(P1,P14,P12))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L18,(P2,P8,P9))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L18,(P2,P8,P9))
                  | L19 => (L9,(P14,P14,P12))
                  | L20 => (L9,(P12,P14,P12))
                  | L21 => (L18,(P9,P8,P9))
                  | L22 => (L20,(P3,P8,P12))
                  | L23 => (L9,(P14,P14,P12))
                  | L24 => (L18,(P8,P8,P9))
                  | L25 => (L23,(P4,P14,P9))
                  | L26 => (L9,(P12,P14,P12))
                  | L27 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L10,(P1,P7,P9))
                  | L9 => (L10,(P1,P7,P9))
                  | L10 => (L10,(P1,P7,P9))
                  | L11 => (L10,(P1,P7,P9))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L16,(P2,P13,P12))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L16,(P2,P13,P12))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L21,(P3,P13,P9))
                  | L20 => (L16,(P12,P13,P12))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L10,(P7,P7,P9))
                  | L23 => (L10,(P9,P7,P9))
                  | L24 => (L26,(P4,P7,P12))
                  | L25 => (L16,(P13,P13,P12))
                  | L26 => (L10,(P7,P7,P9))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L29 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L5,(P12,P11,P12))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L5,(P11,P11,P12))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L5,(P11,P11,P12))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L5,(P12,P11,P12))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L5,(P12,P11,P12))
                  | L21 => (L4,(P9,P9,P9))
                  | L22 => (L5,(P11,P11,P12))
                  | L23 => (L4,(P9,P9,P9))
                  | L24 => (L5,(P11,P11,P12))
                  | L25 => (L4,(P10,P9,P9))
                  | L26 => (L5,(P12,P11,P12))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L30 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L4,(P10,P10,P9))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L4,(P9,P10,P9))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L4,(P10,P10,P9))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L4,(P9,P10,P9))
                  | L19 => (L4,(P10,P10,P9))
                  | L20 => (L5,(P12,P12,P12))
                  | L21 => (L4,(P9,P10,P9))
                  | L22 => (L5,(P11,P12,P12))
                  | L23 => (L4,(P9,P10,P9))
                  | L24 => (L5,(P11,P12,P12))
                  | L25 => (L4,(P10,P10,P9))
                  | L26 => (L5,(P12,P12,P12))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                  | L30 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L31 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L10,(P7,P7,P9))
                  | L14 => (L9,(P14,P14,P12))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L9,(P12,P14,P12))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L10,(P9,P7,P9))
                  | L19 => (L9,(P14,P14,P12))
                  | L20 => (L9,(P12,P14,P12))
                  | L21 => (L10,(P9,P7,P9))
                  | L22 => (L10,(P7,P7,P9))
                  | L23 => (L7,(P4,P6,P6))
                  | L24 => (L7,(P4,P6,P6))
                  | L25 => (L7,(P4,P6,P6))
                  | L26 => (L7,(P4,P6,P6))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L32 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L15,(P2,P6,P6))
                  | L14 => (L15,(P2,P6,P6))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L15,(P2,P6,P6))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L15,(P2,P6,P6))
                  | L19 => (L15,(P3,P6,P6))
                  | L20 => (L15,(P3,P6,P6))
                  | L21 => (L15,(P3,P6,P6))
                  | L22 => (L15,(P3,P6,P6))
                  | L23 => (L7,(P4,P6,P6))
                  | L24 => (L7,(P4,P6,P6))
                  | L25 => (L7,(P4,P6,P6))
                  | L26 => (L7,(P4,P6,P6))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                  | L32 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L33 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L4,(P10,P9,P9))
                  | L9 => (L5,(P12,P12,P12))
                  | L10 => (L4,(P9,P9,P9))
                  | L11 => (L5,(P11,P12,P12))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L4,(P10,P9,P9))
                  | L14 => (L5,(P11,P12,P12))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L5,(P12,P12,P12))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L4,(P9,P9,P9))
                  | L19 => (L4,(P10,P9,P9))
                  | L20 => (L5,(P12,P12,P12))
                  | L21 => (L4,(P9,P9,P9))
                  | L22 => (L5,(P11,P12,P12))
                  | L23 => (L4,(P9,P9,P9))
                  | L24 => (L5,(P11,P12,P12))
                  | L25 => (L4,(P10,P9,P9))
                  | L26 => (L5,(P12,P12,P12))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                  | L32 => (L2,(P6,P6,P6))
                  | L33 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
       | _ => (L0, (P0,P0,P0))
        end
 | L34 => match l2 with
        | L0 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L1 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L2 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L3 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L4 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L5 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L6 => match l1 with
                  | L0 => (L2,(P0,P0,P6))
                  | L1 => (L2,(P0,P0,P6))
                  | L2 => (L2,(P0,P0,P6))
                  | L3 => (L2,(P0,P0,P6))
                  | L4 => (L2,(P0,P0,P6))
                  | L5 => (L2,(P0,P0,P6))
                  | L6 => (L2,(P0,P0,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L7 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L8 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L9 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L10 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L11 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L7,(P1,P1,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L12 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P1,P6))
                  | L9 => (L7,(P1,P1,P6))
                  | L10 => (L7,(P1,P1,P6))
                  | L11 => (L7,(P1,P1,P6))
                  | L12 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L13 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L14 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L11,(P1,P11,P11))
                  | L8 => (L11,(P1,P11,P11))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L11,(P1,P11,P11))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L11,(P1,P11,P11))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L15 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L16 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L11,(P1,P13,P11))
                  | L8 => (L11,(P1,P13,P11))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L11,(P1,P13,P11))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L11,(P1,P13,P11))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L17 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L13,(P2,P2,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L18 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L13,(P2,P2,P10))
                  | L15 => (L13,(P2,P2,P10))
                  | L16 => (L13,(P2,P2,P10))
                  | L17 => (L13,(P2,P2,P10))
                  | L18 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L19 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L8,(P1,P10,P10))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L8,(P1,P10,P10))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L8,(P1,P10,P10))
                  | L12 => (L8,(P1,P10,P10))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L13,(P2,P10,P10))
                  | L15 => (L13,(P2,P10,P10))
                  | L16 => (L13,(P2,P10,P10))
                  | L17 => (L13,(P2,P10,P10))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L20 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L8,(P1,P8,P10))
                  | L8 => (L8,(P1,P8,P10))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L8,(P1,P8,P10))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L8,(P1,P8,P10))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L21 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L11,(P1,P13,P11))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L11,(P1,P13,P11))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L11,(P1,P13,P11))
                  | L12 => (L11,(P1,P13,P11))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L15,(P2,P3,P6))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L15,(P2,P3,P6))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L15,(P3,P3,P6))
                  | L21 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L22 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L11,(P1,P11,P11))
                  | L8 => (L11,(P1,P11,P11))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L11,(P1,P11,P11))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L11,(P1,P11,P11))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L13,(P2,P7,P10))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L13,(P2,P7,P10))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L13,(P10,P7,P10))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L11,(P13,P11,P11))
                  | L22 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L23 => match l1 with
                  | L0 => (L4,(P0,P9,P10))
                  | L1 => (L4,(P0,P9,P10))
                  | L2 => (L4,(P0,P9,P10))
                  | L3 => (L4,(P0,P9,P10))
                  | L4 => (L4,(P0,P9,P10))
                  | L5 => (L4,(P0,P9,P10))
                  | L6 => (L4,(P0,P9,P10))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L19,(P3,P14,P10))
                  | L21 => (L4,(P9,P9,P10))
                  | L22 => (L14,(P11,P14,P11))
                  | L23 => (L4,(P9,P9,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L24 => match l1 with
                  | L0 => (L5,(P0,P11,P11))
                  | L1 => (L5,(P0,P11,P11))
                  | L2 => (L5,(P0,P11,P11))
                  | L3 => (L5,(P0,P11,P11))
                  | L4 => (L5,(P0,P11,P11))
                  | L5 => (L5,(P0,P11,P11))
                  | L6 => (L5,(P0,P11,P11))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L11,(P13,P11,P11))
                  | L22 => (L5,(P11,P11,P11))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L5,(P11,P11,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L25 => match l1 with
                  | L0 => (L4,(P0,P10,P10))
                  | L1 => (L4,(P0,P10,P10))
                  | L2 => (L4,(P0,P10,P10))
                  | L3 => (L4,(P0,P10,P10))
                  | L4 => (L4,(P0,P10,P10))
                  | L5 => (L4,(P0,P10,P10))
                  | L6 => (L4,(P0,P10,P10))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L7,(P1,P4,P6))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L7,(P1,P4,P6))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                  | L20 => (L8,(P8,P10,P10))
                  | L21 => (L4,(P9,P10,P10))
                  | L22 => (L11,(P11,P13,P11))
                  | L23 => (L4,(P9,P10,P10))
                  | L24 => (L7,(P4,P4,P6))
                  | L25 => (L4,(P10,P10,P10))
                 | _ => (L0,(P0,P0,P0))
                end
        | L26 => match l1 with
                  | L0 => (L5,(P0,P12,P11))
                  | L1 => (L5,(P0,P12,P11))
                  | L2 => (L5,(P0,P12,P11))
                  | L3 => (L5,(P0,P12,P11))
                  | L4 => (L5,(P0,P12,P11))
                  | L5 => (L5,(P0,P12,P11))
                  | L6 => (L5,(P0,P12,P11))
                  | L7 => (L7,(P1,P4,P6))
                  | L8 => (L7,(P1,P4,P6))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L7,(P1,P4,P6))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L7,(P1,P4,P6))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L7,(P6,P4,P6))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L7,(P4,P4,P6))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L13,(P10,P7,P10))
                  | L20 => (L5,(P12,P12,P11))
                  | L21 => (L22,(P3,P7,P11))
                  | L22 => (L5,(P11,P12,P11))
                  | L23 => (L7,(P4,P4,P6))
                  | L24 => (L5,(P11,P12,P11))
                  | L25 => (L7,(P4,P4,P6))
                  | L26 => (L5,(P12,P12,P11))
                 | _ => (L0,(P0,P0,P0))
                end
        | L27 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L8,(P1,P8,P10))
                  | L9 => (L8,(P1,P8,P10))
                  | L10 => (L8,(P1,P8,P10))
                  | L11 => (L8,(P1,P8,P10))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L14,(P2,P14,P11))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L14,(P2,P14,P11))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L8,(P8,P8,P10))
                  | L21 => (L19,(P3,P14,P10))
                  | L22 => (L14,(P11,P14,P11))
                  | L23 => (L14,(P14,P14,P11))
                  | L24 => (L8,(P8,P8,P10))
                  | L25 => (L8,(P10,P8,P10))
                  | L26 => (L24,(P4,P8,P11))
                  | L27 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L28 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L11,(P1,P13,P11))
                  | L9 => (L11,(P1,P13,P11))
                  | L10 => (L11,(P1,P13,P11))
                  | L11 => (L11,(P1,P13,P11))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L13,(P10,P7,P10))
                  | L20 => (L22,(P3,P7,P11))
                  | L21 => (L11,(P13,P13,P11))
                  | L22 => (L11,(P11,P13,P11))
                  | L23 => (L25,(P4,P13,P10))
                  | L24 => (L11,(P11,P13,P11))
                  | L25 => (L11,(P13,P13,P11))
                  | L26 => (L13,(P7,P7,P10))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L29 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L4,(P9,P9,P10))
                  | L22 => (L5,(P11,P11,P11))
                  | L23 => (L4,(P9,P9,P10))
                  | L24 => (L5,(P11,P11,P11))
                  | L25 => (L4,(P10,P9,P10))
                  | L26 => (L5,(P12,P11,P11))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L30 => match l1 with
                  | L0 => (L2,(P0,P5,P6))
                  | L1 => (L2,(P0,P5,P6))
                  | L2 => (L2,(P0,P5,P6))
                  | L3 => (L2,(P0,P5,P6))
                  | L4 => (L2,(P0,P5,P6))
                  | L5 => (L2,(P0,P5,P6))
                  | L6 => (L2,(P0,P5,P6))
                  | L7 => (L2,(P6,P5,P6))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L2,(P5,P5,P6))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L2,(P6,P5,P6))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L2,(P5,P5,P6))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                  | L20 => (L5,(P12,P12,P11))
                  | L21 => (L4,(P9,P10,P10))
                  | L22 => (L5,(P11,P12,P11))
                  | L23 => (L4,(P9,P10,P10))
                  | L24 => (L5,(P11,P12,P11))
                  | L25 => (L4,(P10,P10,P10))
                  | L26 => (L5,(P12,P12,P11))
                  | L27 => (L2,(P5,P5,P6))
                  | L28 => (L2,(P5,P5,P6))
                  | L29 => (L2,(P5,P5,P6))
                  | L30 => (L2,(P5,P5,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L31 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L13,(P2,P7,P10))
                  | L14 => (L13,(P2,P7,P10))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L13,(P2,P7,P10))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L13,(P2,P7,P10))
                  | L19 => (L13,(P10,P7,P10))
                  | L20 => (L15,(P3,P6,P6))
                  | L21 => (L15,(P3,P6,P6))
                  | L22 => (L13,(P7,P7,P10))
                  | L23 => (L7,(P4,P6,P6))
                  | L24 => (L7,(P4,P6,P6))
                  | L25 => (L7,(P4,P6,P6))
                  | L26 => (L7,(P4,P6,P6))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L32 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L7,(P1,P6,P6))
                  | L9 => (L7,(P1,P6,P6))
                  | L10 => (L7,(P1,P6,P6))
                  | L11 => (L7,(P1,P6,P6))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L8,(P10,P8,P10))
                  | L14 => (L11,(P11,P13,P11))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L11,(P13,P13,P11))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L8,(P8,P8,P10))
                  | L19 => (L8,(P10,P8,P10))
                  | L20 => (L8,(P8,P8,P10))
                  | L21 => (L11,(P13,P13,P11))
                  | L22 => (L11,(P11,P13,P11))
                  | L23 => (L7,(P4,P6,P6))
                  | L24 => (L7,(P4,P6,P6))
                  | L25 => (L7,(P4,P6,P6))
                  | L26 => (L7,(P4,P6,P6))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                  | L32 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L33 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L4,(P10,P9,P10))
                  | L9 => (L5,(P12,P12,P11))
                  | L10 => (L4,(P9,P9,P10))
                  | L11 => (L5,(P11,P12,P11))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L4,(P10,P9,P10))
                  | L14 => (L5,(P11,P12,P11))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L5,(P12,P12,P11))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L4,(P9,P9,P10))
                  | L19 => (L4,(P10,P9,P10))
                  | L20 => (L5,(P12,P12,P11))
                  | L21 => (L4,(P9,P9,P10))
                  | L22 => (L5,(P11,P12,P11))
                  | L23 => (L4,(P9,P9,P10))
                  | L24 => (L5,(P11,P12,P11))
                  | L25 => (L4,(P10,P9,P10))
                  | L26 => (L5,(P12,P12,P11))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                  | L32 => (L2,(P6,P6,P6))
                  | L33 => (L2,(P6,P6,P6))
                 | _ => (L0,(P0,P0,P0))
                end
        | L34 => match l1 with
                  | L0 => (L2,(P0,P6,P6))
                  | L1 => (L2,(P0,P6,P6))
                  | L2 => (L2,(P0,P6,P6))
                  | L3 => (L2,(P0,P6,P6))
                  | L4 => (L2,(P0,P6,P6))
                  | L5 => (L2,(P0,P6,P6))
                  | L6 => (L2,(P0,P6,P6))
                  | L7 => (L2,(P6,P6,P6))
                  | L8 => (L4,(P10,P10,P10))
                  | L9 => (L5,(P12,P11,P11))
                  | L10 => (L4,(P9,P10,P10))
                  | L11 => (L5,(P11,P11,P11))
                  | L12 => (L2,(P5,P6,P6))
                  | L13 => (L4,(P10,P10,P10))
                  | L14 => (L5,(P11,P11,P11))
                  | L15 => (L2,(P6,P6,P6))
                  | L16 => (L5,(P12,P11,P11))
                  | L17 => (L2,(P5,P6,P6))
                  | L18 => (L4,(P9,P10,P10))
                  | L19 => (L4,(P10,P10,P10))
                  | L20 => (L5,(P12,P11,P11))
                  | L21 => (L4,(P9,P10,P10))
                  | L22 => (L5,(P11,P11,P11))
                  | L23 => (L4,(P9,P10,P10))
                  | L24 => (L5,(P11,P11,P11))
                  | L25 => (L4,(P10,P10,P10))
                  | L26 => (L5,(P12,P11,P11))
                  | L27 => (L2,(P5,P6,P6))
                  | L28 => (L2,(P5,P6,P6))
                  | L29 => (L2,(P5,P6,P6))
                  | L30 => (L2,(P5,P6,P6))
                  | L31 => (L2,(P6,P6,P6))
                  | L32 => (L2,(P6,P6,P6))
                  | L33 => (L2,(P6,P6,P6))
                  | L34 => (L2,(P6,P6,P6))
                end
        end
end.

Check f_a3_3.

(* Local Variables: *)
(* coq-prog-name: "/Users/magaud/.opam/4.07.0/bin/coqtop" *)
(* coq-load-path: (("/Users/magaud/math-comp/mathcomp" "mathcomp") ("." "Top")) *)
(* suffixes: .v *)
(* End: *)