diff --git a/research/p104-carrier-code-uniqueness/PROOF.md b/research/p104-carrier-code-uniqueness/PROOF.md new file mode 100644 index 0000000000..37766de9ea --- /dev/null +++ b/research/p104-carrier-code-uniqueness/PROOF.md @@ -0,0 +1,245 @@ +# Proof: the length-8 P104 decoding code is unique + +Prepared for Matarener with Claude (Anthropic), via Claude Code. + +## 1. Setting + +We use the P104 local word in the accumulated-block schema +(`p104-accumulated-block-composition/2`). The pinned inputs are the PR5907 +word (`research/p104-helper468-rung-removal/WORD.json.gz`) and the selected +PR6030 word (`research/p104-helper470-twin-rung-removal/WORD.json.gz`). +The checker rules used below are the following: + +- Each role carries a row and sits in a frame, which is a subspace of `F_2^9`. +- `ADD`, `COPY` and `SCALE` act only between roles in the same frame. +- `COPY` writes only into owned roles. +- `INIT` and `CLEAR` empty an owned row. +- A public role only moves up: its frame grows. +- An owned role only moves down: its frame shrinks. +- The paid cost of a move is the dimension difference. + +There are 104 live roles. Live `l` starts in ``, where `q_l` is an +odd-weight port vector. Its partner `l + 112` starts at `{0}` and ends in +the hyperplane `q_l^perp`. The live projection of the partner's final row is +`e_l`. Ports `i` and `j` *conflict* when ` = 1`. Because every port +has odd weight, `q_l` does not lie in `q_l^perp`. + +## 2. From words to decoding codes + +**Lemma 1 (frame decomposition).** Split every public row into two parts: + +- a *lives-in-frame* part, which grows only by ADDs between public roles; +- an *owned-delivered* part, which collects everything received from owned roles. + +Then the lives-in-frame part of a public role is always supported on lives +whose ports lie in the role's current frame. + +*Proof.* The claim holds at the start, since live `l` holds `e_l` in `` +and every other public role is empty. An ADD from public role `s` into public +role `r` happens in a common frame `F`. By induction, the support of the source +lies on ports in `F`. A public role's frame only grows, so the support stays +inside its later frames. SCALE preserves supports, and COPY never targets a +public role. Owned content enters only the owned-delivered part. ∎ + +`wordcode.decompose` checks this invariant after every event of both words. + +**Corollary 2.** Let `w_l` be the owned-delivered part of partner `l + 112` at +the end. Then `w_l[l] = 1` and `w_l[m] = 0` for every port `m` that conflicts +with `l`. + +*Proof.* The partner's frame only grows and ends at `q_l^perp`, so it always +lies inside `q_l^perp`. By Lemma 1, the lives-in-frame part is supported on +ports in `q_l^perp`. That set contains neither `l` nor any port conflicting +with `l`. The endpoint is `e_l = lives-in-frame + w_l`, which gives the claim +on those coordinates. ∎ + +**Definition.** A *decoding code* over a field `K` is a subspace +`W <= K^104` that contains, for every port `l`, a vector `w_l` with +`w_l[l] = 1` and `w_l[m] = 0` for every `m` conflicting with `l`. + +Let `T` be a conflict clique of size 8; `T_INDEX` is one. Then the vectors +`w_t` for `t` in `T`, restricted to `T`, form the identity, so +`dim W >= 8`. By Corollary 2, the span of the partner parts `w_l` of any legal +word is a decoding code over `Q`. + +**Reduction mod 3.** Assume all scalars of the word are dyadic, so every row +is 3-integral. Let `W` be a decoding code over `Q` of dimension 8 that is +spanned by 3-integral decoding vectors. Then the reduction mod 3 of the +saturated lattice `W ∩ Z_(3)^104` is an 8-dimensional decoding code over +`F_3`. Reducing a 3-primitive multiple of a nonzero vector of `W` gives a +nonzero vector whose support is contained in the original support. + +## 3. The finite model over F_3 + +Let `W` be an 8-dimensional decoding code over `F_3`. Restriction to `T` is +then a bijection `W -> F_3^T`, so the vectors `w_t` (`t` in `T`) form a basis. + +For a port `j` outside `T`, write `w_j = sum_t a_{j,t} w_t`. Evaluating at +`t'` in `T` gives `a_{j,t'} = w_j[t']`, which is 0 when `t'` conflicts with +`j`. So `a_j` is supported on `T_j`, the members of `T` orthogonal to `q_j`. +For every `j` outside `T`, `|T_j| = 4`; `Model.__init__` asserts this. + +The unknowns are: + +- the 384 trits `x_{t,m} = w_t[m]`, for `m` not conflicting with `t`; +- the coefficient vectors `a_j`. + +On the clique the values are fixed: `w_t[t] = 1`, and `w_t[m] = 0` for every +`m` conflicting with `t`, which includes `T \ {t}`. Port `j` contributes these +equations, which are linear in `x` once `a_j` is fixed: + +- `sum_t a_{j,t} x_{t,j} = 1`; +- `sum_t a_{j,t} w_t[m] = 0` for every `m` conflicting with `j`. + +`Model.equations` builds exactly these. + +**Gauge.** A diagonal sign matrix `D` maps decoding codes to decoding codes +(`w_l -> D_ll^{-1} w_l D`). It preserves zero patterns and weights, and sends +`a_{j,t}` to `D_jj^{-1} a_{j,t} D_tt`. + +The search assigns ports one at a time. It keeps a partition of `T` into sign +classes, where two members are in the same class once their relative sign is +fixed by an assigned `a_j`. An option `a_j` is *canonical* when two conditions +hold: + +1. its first nonzero entry is 1; +2. on the first member of every class it meets that is not the class of its + first entry, its entry is 1. + +*Completeness.* Take any solution and any node on its path. Fix the first +entry with `D_jj`. Then flip, one at a time, each further class that `a_j` +meets. A flip negates `D_tt` on the whole class, and also `D_{j'j'}` for every +earlier port `j'` whose support lies in that class. Earlier options keep their +form, because the support of each earlier option lies inside a single merged +class. The result is a gauge-equivalent solution that agrees with the node and +is canonical at `j`. By induction every solution is gauge-equivalent to one +reached by the search. + +*Branching.* At a node with free ports `R`, the completions are the disjoint +union, over the canonical consistent options `c` of any single port `j` in +`R`, of the completions below `(j, c)`. So any branching order gives a +complete enumeration. `gen8.py` picks the most constrained port (MRV); the +replay simply accepts the port named in the certificate. Consistency means the +accumulated linear system over `F_3` has no row `0 = 1`. It is maintained by +exact incremental Gaussian elimination on bitmasks. + +## 4. The certificate + +`gen8.py` wrote a pre-order token stream: + +- `n j`: an internal node branching on `j`; +- `d j`: a dead node, where `j` has no canonical consistent option; +- `s`: a leaf with all 96 ports assigned. + +The root options are split into four parts by option index modulo 4. The parts +were generated on Kaggle, one process per part, and are stored in +`cert/part*.txt.gz`. Their node counts are in `RESULT.json`. + +`replay.replay` re-runs the model along the stream and checks the following: + +- At every internal node it recomputes all canonical consistent options of the + named port and descends into each in order. +- At every dead node it checks that there is no such option. +- At every leaf it checks that no port is left. +- Every stream must end exactly when its subtree ends. + +The certificate is therefore only a branching schedule. Every claim about +options is recomputed, so a wrong certificate can fail but cannot hide a +solution. + +## 5. Result + +**Theorem 3.** Up to the sign gauge, there is exactly one 8-dimensional +decoding code over `F_3` on the 104 P104 ports. The four parts contain one +leaf in total, and its linear system has no free variable. The code `C*` has +these properties: + +- its decoding vectors are unique at every port; +- its decoding matrix `M = (w_l[m])` is sign-equivalent to `M^T`, so the + column code is `C*` up to signs; +- its weight distribution is the one recorded in `RESULT.json`, with + minimum weight 49 (208 words), then 52 (32), 62 (16), 65 (448), and so on. + +The weight-52 owned deliveries of both pinned words (ten each) span exactly +`C*` up to signs. + +**Lemma 4 (frame capacity).** A hyperplane of `F_2^9` contains at most 60 +ports, and a subspace of codimension 2 contains at most 36. `verify.py` +checks this by enumerating all subspaces. Hence any 49 ports span a space of +dimension at least 8. + +## 5a. Why the code exists: E8 + +The ports are 104 of the 120 root lines of `E8`. We write `E8` in `A8` +coordinates, so the root lines are `±(e_i − e_j)` and `±(2/3 on a 3-set, +−1/3 elsewhere)`. A port `q` of weight 7, with zeros at `i` and `j`, gives the +root `e_i − e_j`. A port of weight 3 gives the root with `2/3` on its three +coordinates. + +These roots have norm 2. Two ports conflict (` = 1` over `F_2`) exactly +when their roots are orthogonal. The code `C*` is, up to signs, the Gram +matrix of these roots divided by 2. Over `Q` its eigenvalues are 13 (eight +times) and 0 (96 times). The missing lines are 14 of weight 3 and 2 of +weight 7. `verify.py` checks the norms, the orthogonality and the sign equivalence. + +In clique coordinates every other root is `½(±r_a ± r_b ± r_c ± r_d)` over a +block of the Steiner system `S(3,4,8)`: there are 14 blocks with 8 lines +each, and 96 of these 112 lines are ports. The finite model of section 3 then +reads as follows. For each line `j` there are two 4-vectors `α_j, β_j` on its +block, with `<α_j, β_j> = 1` and `<α_j, β_k> = 0` for orthogonal pairs. + +The `E8` solution is `α_j = β_j = ε_j`, the sign pattern of the root. This +works because `4 ≡ 1` mod 3. + +Subsystems of three blocks through a pair of clique points do not force full +supports: every probed degenerate support is locally consistent. A proof +without the search must therefore use all of E8 at once. Such a proof is in +[`e8/E8-PROOF.md`](e8/E8-PROOF.md): frame factorisation over all 759 frames, +an A2 triangle argument, and a sign step in one frame. It is formalized in +Lean (`lean/CarrierCode/E8*.lean`). + +## 6. Scoped cost corollary + +**Corollary 5.** Take a legal word with dyadic scalars whose partner code +`W_P = span{w_l}` has dimension 8. Assume `W_P` has a basis `v_1, ..., v_8` +of delivered vectors, each carried down one owned chain. A chain is a +sequence of owned lives linked by same-frame COPY/ADD, and its cost is its +total paid descent. Make two single-stage assumptions: + +- the live support of `v_c` lies on ports of the chain's root frame; +- every partner `l` with `a_{l,c} != 0` in `w_l = sum_c a_{l,c} v_c` receives + `v_c` from that chain, in a common frame. + +Then every chain costs at least 7, so the eight chains cost at least 56 per +call. This is exactly what the PR5907 word pays: chains 8→4→3→1 four times, +8→7→1 three times and 8→5→1 once. + +*Proof.* Reducing `W_P` mod 3 gives `C*` up to signs (section 2 and +Theorem 3). So `v_c` has at least 49 nonzero live coordinates. By Lemma 4, +its root frame has dimension at least 8. + +The vector `(a_{l,c})_l` is the functional "coefficient of `v_c`" evaluated +on the `w_l`. It is therefore a nonzero vector of the column space of `M` +over `Q`. That column space reduces mod 3 to the column code of `C*`, which is +`C*` up to signs. So at least 49 partners receive `v_c`. + +A receiving partner's frame lies inside `q_l^perp`. The chain's frames only +shrink, so its lowest frame `B` lies in `q_l^perp` for every receiver, that +is, in the orthogonal complement of the span of at least 49 ports. That span +has dimension at least 8, so `dim B <= 1`. The chain descends from dimension +at least 8 to at most 1, so it costs at least 7. ∎ + +## 7. Limits + +- **Larger partner codes are open.** The corollary needs `dim W_P = 8`. + The selected PR6030 word has `dim W_P = 9` mod 3: one bookkeeping direction + outside `C*`. Its ten weight-52 carrier deliveries still span `C*`. So the + corollary describes PR6030's carriers but does not bound PR6030 as written. + Codes of dimension 9 or more, and their cheapest carriers, are not + classified here. +- **Multi-stage designs are not covered.** In such designs partners receive + mixtures relayed through public roles, so a carrier's receivers are not + forced to reach 49. +- **No new kappa is claimed.** The result removes "cheaper carriers for the + same eight-dimensional code" as a source of paid-H1 savings in the local + word. diff --git a/research/p104-carrier-code-uniqueness/README.md b/research/p104-carrier-code-uniqueness/README.md new file mode 100644 index 0000000000..5a5e8af925 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/README.md @@ -0,0 +1,213 @@ +# The eight-carrier code of the P104 local word is unique + +**This is a scoped negative result. No new κ is claimed.** + +Every legal P104 local word decodes through owned deliveries. The owned part +`w_l` delivered to partner `l + 112` has two properties. Its coordinate at `l` +is 1. It is zero on the 55 ports that conflict with `l`, where ports `i` and +`j` conflict when ` = 1`. So the span of the `w_l` is a *decoding +code* over the 104 ports. It has dimension at least 8, because the conflict +graph contains 8-cliques. + +This package proves, with computer assistance, that over `F_3` there is +**exactly one 8-dimensional decoding code, up to sign changes of the +coordinates**. Its minimum weight is **49**. + +The code is the one that the eight carriers of the PR5907 and PR6030 words +already deliver. In each word, the ten owned deliveries of support 52 span it +exactly. Any 49 ports span a space of dimension at least 8, since at most 36 +ports fit in a codimension-2 subspace. It follows that, in a single-stage +design whose partner code is 8-dimensional: + +- every carrier needs a root frame of dimension at least 8; +- every carrier must land in a frame of dimension at most 1. + +So each carrier pays at least 7, which is 56 per call. That is exactly what +the PR5907 word pays. The paid H1 of the local word therefore cannot be cut by +cheaper carriers for any eight-dimensional code, not only for PR5907's. + +**Card:** `complex-rank-shape-decoder`, refined to the decoder code of the +local word. See [TASK.json](TASK.json). + +**Base:** canonical main `3f0152a32eeebac0df11946dbd50cabe5a7f7839`. Inputs are +pinned in [SOURCES.json](SOURCES.json). + +## What is proved + +The full statements and proofs are in [PROOF.md](PROOF.md). + +1. **Lemma 1, frame decomposition.** A public row's lives-in-frame part stays + on ports of its frame. It follows that partner parts `w_l` give a decoding + code. Dyadic scalars make this code reduce mod 3 to a decoding code of the + same dimension, and supports can only shrink under the reduction. +2. **Theorem 3, uniqueness.** We fix the conflict clique + `T = {1, 5, 18, 20, 80, 85, 100, 103}`. An 8-dimensional code is then + determined by 384 trits `w_t[m]`, plus, for every other port, a + combination of the four clique members orthogonal to it. + + The search is a depth-first enumeration over `F_3`. It uses exact + incremental Gaussian elimination and a complete sign gauge on `T`. It finds + one solution, and that solution has no free variable. + + The solution's decoding matrix is sign-symmetric, so the row and column + codes agree. The weight distribution is 49 (208), 52 (32), 62 (16), + 65 (448), 68 (1504), 69 (1408), 70 (512), 71 (192), 72 (768), 73 (1024), + 75 (64) and 76 (384). +3. **Corollary 5, scoped cost floor.** Assume a partner code of dimension 8, + dyadic scalars, and a basis of eight delivered vectors, each carried down + one owned chain directly to its receivers. Then every chain costs at + least 7. + +| Word | Weight-52 owned deliveries | Their rank mod 3 | Same code as the solution | Partner-code rank mod 3 | +|---|---:|---:|---|---:| +| PR5907 (`p104-helper468-rung-removal`) | 10 | 8 | yes, up to signs | 8 | +| PR6030, selected (`p104-helper470-twin-rung-removal`) | 10 | 8 | yes, up to signs | 9 | + +PR6030's partner code has one bookkeeping direction outside the unique code. +Corollary 5 therefore describes its carriers but does not bound the word as +written. + +## Certificate + +[gen8.py](gen8.py) and [code8.py](code8.py) wrote a pre-order certificate of +the search. Its four parts are split by root option, and each was generated in +one Kaggle process. + +The search branches first on port 0, which has 15 canonical options. The +four parts hold: + +| Part | Root options | Internal nodes | Dead nodes | Leaves | Generation time | +|---|---:|---:|---:|---:|---:| +| 0 | 4 | 48,696 | 26,162 | 0 | 4,411 s | +| 1 | 4 | 48,328 | 25,730 | 0 | 4,389 s | +| 2 | 4 | 40,897 | 27,884 | **1** | 4,814 s | +| 3 | 3 | 49,050 | 21,251 | 0 | 3,715 s | + +Each part is about 50 KB gzipped. An earlier, independent run of the same +enumeration also found exactly one solution, with identical node totals in +every part. The replay takes about 107 s per pair of parts. + +[verify.py](verify.py) needs no trust in the certificate. At every node it +recomputes all canonical consistent options of the named port, descends into +each, and checks that dead nodes have none. The certificate only says in which +order to branch. + +## Verification + +```sh +python3.12 -B research/p104-carrier-code-uniqueness/verify.py --parts 0,1 +python3.12 -B research/p104-carrier-code-uniqueness/verify.py --parts 2,3 +``` + +The verifier uses only the standard library ([replay.py](replay.py), +[wordcode.py](wordcode.py)). Each command does the following: + +1. Authenticates the pinned words. +2. Checks the structure: the ports agree between the words, all 104 have odd + weight, the conflict graph is 55-regular, `T` is a clique, + `f(8) = 60` and `f(7) = 36` (by enumerating all hyperplanes and all + codimension-2 subspaces). +3. Replays the Lemma-1 decomposition of both words. This checks the frame + invariant after every event and every partner endpoint. It also checks + that the weight-52 deliveries span an 8-dimensional decoding code that + satisfies the model equations. +4. Replays its two certificate parts. +5. For the part that holds the solution, checks the solution: it decodes, it + is sign-symmetric, its weight distribution and minimum weight are as + stated, and it is sign-equivalent to both words' codes. +6. Runs the controls: + - one trit changed in the code breaks the model equations; + - a certificate whose first internal node is marked dead is rejected; + - a certificate whose first dead node is replaced by a leaf is rejected. +7. Compares its sections of [RESULT.json](RESULT.json). It also checks that + the recorded parts cover every root option and contain exactly one + solution. + +The final marker is `PASS_P104_CARRIER_CODE_UNIQUENESS`. + +## Lean + +[`lean/`](lean) formalises everything in PROOF.md except the finite search. It +uses the same Mathlib revision as `fragmentation-ceiling`. + +**Machine-checked:** + +- [`CarrierCode/Word.lean`](lean/CarrierCode/Word.lean) models a word as a + list of events with the checker's frame rules. It proves: + - Lemma 1, the frame invariant along any legal run (`inv_run`), starting + from the initial state (`inv_init`), together with the fact that owned + parts lie in the span of the delivered owned rows; + - that `row = lp + od` is the real row semantics (`step_row`); + - Corollary 2 (`decoding_vector`); + - that the word's arithmetic commutes with any ring hom (`run_map`, + `legalRun_map`, `row_map`), which is the formal reduction of a dyadic + word to `ZMod 3`. +- [`CarrierCode/Cost.lean`](lean/CarrierCode/Cost.lean) proves: + - `dim B + dim B^⊥ = 9` for the dot product; + - that a frame holding at least 49 ports has dimension at least 8, and a + frame orthogonal to at least 49 ports has dimension at most 1; + - that the decoding vectors of an 8-clique span the code + (`span_of_clique`); + - Corollary 5 (`carriers_cost`): at least 7 per chain and at least 56 for + the eight chains. + +**Taken as hypotheses, checked by `verify.py`:** + +- `CodeFact`: every 8-dimensional decoding code has row and column minimum + weight at least 49. This is Theorem 3 together with the weight facts. It is + established by the certificate replay. +- `Capacity`: at most 36 ports lie in a subspace of dimension at most 7. This + is Lemma 4, checked by enumeration. + +Both are finite computations that are too large for kernel `decide`, and the +axiom policy rules out `native_decide`. + +To build and audit, run from the repository root: + +```sh +cd research/p104-carrier-code-uniqueness/lean && lake exe cache get && lake build && cd - +python3 scripts/check_lean_axioms.py --project research/p104-carrier-code-uniqueness/lean \ + --audit research/p104-carrier-code-uniqueness/lean/Audit.lean +``` + +The audit reports `propext`, `Classical.choice` and `Quot.sound` only, for all +14 declarations. + +## Search-free proof via E8 + +[`e8/E8-PROOF.md`](e8/E8-PROOF.md) proves Theorem 3 a second time, without the search. The 104 ports are 104 of +the 120 root lines of E8, and two ports conflict exactly when their roots are orthogonal. The argument has five +steps: frame factorisation `M = M[:,F] M[F,:]`; frame sums of `N = M ∘ Mᵀ`; a linear lemma on each row of `N` +(proved by hand with the tables in [`e8/handcert.md`](e8/handcert.md)); the A2 triangle trick, which makes `M` +symmetric with `±1` entries; and signs, which give `M = D (Gram/2) D`. +[`e8/verify_e8hand.py`](e8/verify_e8hand.py) re-checks the finite inputs in about a minute. + +The whole argument is also formalized in Lean (`lean/CarrierCode/E8*.lean`, final theorem +`CarrierCode.E8.decoding_unique`). All finite inputs are checked by the kernel, with no `native_decide`, and the +axioms are the standard three. These files are outside the default build target because they are heavy (about +8 GB per step-3 chunk, 35 minutes in total); `e8/E8-PROOF.md` gives the build commands and the exact scope. + +## Open next questions + +- **The link from `decoding_unique` to `CodeFact`.** The E8 theorem is stated + for the matrix of decoding vectors. Deriving the word-level `CodeFact` + hypothesis from it (row space and minimum weights) is not formalized. +- **Partner codes of dimension 9 or more are not classified.** PR6030 is one, + because of a bookkeeping direction. A cheaper design would need carriers + that are each cheap but together decode. The clique and cover bounds alone + do not exclude this. +- **Multi-stage relays are outside Corollary 5.** In a relay, partners receive + mixtures through public roles. +- **This is not a κ improvement.** The 56 paid H1 per call in owned descents is + forced only within the stated scope. The larger local-word lever remains the + fragmentation of public and helper lifts; see + [`research/fragmentation-ceiling`](../fragmentation-ceiling/README.md). + +## Credits and scope + +- The local word lineage is aliromman's PR5827 and DreamingOfClouds's PR5907 + and PR6030. +- The checker rules are taken from PR5827's verifier, as used by those + packages. +- The decoding-code view, the enumeration, the certificate and this package + are by Matarener, prepared with Claude (Anthropic) via Claude Code. diff --git a/research/p104-carrier-code-uniqueness/RESULT.json b/research/p104-carrier-code-uniqueness/RESULT.json new file mode 100644 index 0000000000..a269091fdc --- /dev/null +++ b/research/p104-carrier-code-uniqueness/RESULT.json @@ -0,0 +1,165 @@ +{ + "controls": { + "changed_trit_rejected": true, + "dead_node_with_options_rejected": true, + "early_solution_leaf_rejected": true + }, + "parts": { + "0": { + "dead": 26162, + "internal": 48696, + "root_options": 4, + "solutions": 0 + }, + "1": { + "dead": 25730, + "internal": 48328, + "root_options": 4, + "solutions": 0 + }, + "2": { + "dead": 27884, + "internal": 40897, + "root_options": 4, + "solutions": 1 + }, + "3": { + "dead": 21251, + "internal": 49050, + "root_options": 3, + "solutions": 0 + } + }, + "root": { + "options": 15, + "port": 0 + }, + "solution": { + "decodes": true, + "free_variables": 0, + "min_weight": 49, + "sign_equivalent_to": [ + "pr5907", + "pr6030" + ], + "symmetric_up_to_signs": true, + "weight_distribution": { + "49": 208, + "52": 32, + "62": 16, + "65": 448, + "68": 1504, + "69": 1408, + "70": 512, + "71": 192, + "72": 768, + "73": 1024, + "75": 64, + "76": 384 + } + }, + "structure": { + "clique": [ + 1, + 5, + 18, + 20, + 80, + 85, + 100, + 103 + ], + "conflict_degree": 55, + "conflict_is_e8_orthogonality": true, + "e8_root_lines": 104, + "f7_codim2": 36, + "f8_hyperplane": 60, + "ports": 104 + }, + "words": { + "e8_gram_half_sign_equivalent": true, + "pr5907": { + "all_deliveries_rank_mod3": 13, + "code_weight_distribution": { + "49": 208, + "52": 32, + "62": 16, + "65": 448, + "68": 1504, + "69": 1408, + "70": 512, + "71": 192, + "72": 768, + "73": 1024, + "75": 64, + "76": 384 + }, + "delivery_supports": [ + 32, + 32, + 32, + 45, + 51, + 52, + 52, + 52, + 52, + 52, + 52, + 52, + 52, + 52, + 52 + ], + "dyadic": true, + "owned_deliveries": 15, + "partner_owned_parts_inside_code": true, + "partner_owned_parts_rank_mod3": 8, + "path": "research/p104-helper468-rung-removal/WORD.json.gz", + "weight52_deliveries": 10, + "weight52_rank": 8 + }, + "pr6030": { + "all_deliveries_rank_mod3": 13, + "code_weight_distribution": { + "49": 208, + "52": 32, + "62": 16, + "65": 448, + "68": 1504, + "69": 1408, + "70": 512, + "71": 192, + "72": 768, + "73": 1024, + "75": 64, + "76": 384 + }, + "delivery_supports": [ + 32, + 32, + 32, + 45, + 51, + 51, + 52, + 52, + 52, + 52, + 52, + 52, + 52, + 52, + 52, + 52 + ], + "dyadic": true, + "owned_deliveries": 16, + "partner_owned_parts_inside_code": false, + "partner_owned_parts_rank_mod3": 9, + "path": "research/p104-helper470-twin-rung-removal/WORD.json.gz", + "weight52_deliveries": 10, + "weight52_rank": 8 + } + } +} diff --git a/research/p104-carrier-code-uniqueness/SOURCES.json b/research/p104-carrier-code-uniqueness/SOURCES.json new file mode 100644 index 0000000000..6badc7599b --- /dev/null +++ b/research/p104-carrier-code-uniqueness/SOURCES.json @@ -0,0 +1,30 @@ +{ + "schema_version": 1, + "base_commit": "3f0152a32eeebac0df11946dbd50cabe5a7f7839", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "research/p104-helper468-rung-removal/WORD.json.gz", + "usage": "input", + "git_blob": "7ffe7b500b02b9d0de49a85ec53e36004f1a411f", + "sha256": "b69a9cb3a26d4f40aa7ad14f814b188fe16a782999f6f56292538e447d67b284" + }, + { + "path": "research/p104-helper470-twin-rung-removal/WORD.json.gz", + "usage": "input", + "git_blob": "22f9ab02d1b73ea0aa4b07ce445a14cc2602c760", + "sha256": "7834725d9e34ee846a9ccc615221ea81e0201613938afa185d2eda0c9a6c232f" + } + ] +} diff --git a/research/p104-carrier-code-uniqueness/TASK.json b/research/p104-carrier-code-uniqueness/TASK.json new file mode 100644 index 0000000000..918491f39d --- /dev/null +++ b/research/p104-carrier-code-uniqueness/TASK.json @@ -0,0 +1,87 @@ +{ + "schema_version": 1, + "task_id": "complex-rank-shape-decoder", + "priority_revision": 8, + "base_commit": "3f0152a32eeebac0df11946dbd50cabe5a7f7839", + "original_card": { + "id": "complex-rank-shape-decoder", + "question": "Can a legal decoder or coframe change improve the full signed moment, including changed helper targets?", + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "docs/research/recursive-invoice-preflight.md" + ], + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "acceptance_gate": "A source-bound arbitrary-input identity and legal producer/consumer boundary with the complete paid and productive target invoice, including restoration, ownership, native alignment and extra charges. Price under the actual current model; historical ceiling.py assumptions must be established before use. A favorable optimistic relaxation keeps a route open but is not a completed supplier. A scoped local result remains useful; expansion requires the family-level budget gate.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "first_experiment": "Price one complete changed itinerary with both paid and productive histograms. Check #5693/#5698 for overlap and their exact hypotheses before another coframe search. Use the signed invoice preflight where its boundary contract agrees; an inconclusive concave comparison is not a power crossing. Stop if an optimistic complete budget fails at the chosen target or native delivery remains unspecified.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "overlap_terms": [ + "coframe", + "signed moment", + "5693", + "5698" + ], + "existing_checks": [ + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "refined", + "actual_scope": "Decoder code of the P104 local word: classify, over F_3, the 8-dimensional decoding codes on the 104 ports (vectors w_l with w_l[l] = 1 and zero on the 55 conflicting ports) that the owned deliveries of any legal word must span; show the code is unique up to coordinate signs with minimum weight 49, identify it with the carriers of PR5907 and the selected PR6030 word, and derive the scoped floor of 7 paid H1 per carrier (56 per call) for single-stage designs with an 8-dimensional partner code.", + "scope_change_reason": "The card asks whether a legal decoder change can improve the full moment. In the local word the only paid mass not fixed by the contract is the owned descent of the carriers (56 per call on PR5907), and a cheaper decoder would need a different 8-dimensional code with lighter vectors. The question therefore reduces to classifying those codes; the result is an obstruction for that whole class, not a priced itinerary.", + "bottleneck_link": "Each unit of owned descent per call is 18 units of rank-mass surplus on the PR5907 invoice (about 7.45e-5 in kappa). Theorem 3 with Lemma 4 shows that the 56 units per call cannot be reduced by re-shaping eight carriers on any code, so local-word savings must come from fragmentation of public and helper lifts or from designs outside the scope (partner codes of dimension >= 9, multi-stage relays).", + "budget_minutes": 600, + "stop_rule": "Stop when the four certificate parts replay with exactly one solution in total and no free variable, the solution's row and column codes have minimum weight 49 and are sign-equivalent to the weight-52 delivery codes of both pinned words, f(7) = 36 is confirmed, and the three controls are rejected.", + "outcome": "completed", + "evidence": "research/p104-carrier-code-uniqueness/RESULT.json", + "author": "Matarener", + "ai_assistance": "Prepared with Claude (Anthropic) via Claude Code; certificate generated on Kaggle.", + "open_questions": [ + { + "question": "Is there a legal word whose partner code has dimension 9 or more and whose carriers pay fewer than 56 per call in total?", + "why_it_matters": "It is the only single-stage escape from Corollary 5; PR6030 already has a 9-dimensional partner code through one bookkeeping direction.", + "first_step": "Extend code8.Model with a ninth basis vector outside the clique frame and enumerate codes in which some carrier vector has weight at most 36.", + "blocked_by": "The search space grows by the extra basis vector; no certificate yet." + }, + { + "question": "Can a multi-stage relay (partners receiving mixtures through public roles) reduce owned descent below 56 per call?", + "why_it_matters": "Corollary 5 bounds receivers only for direct deliveries; relays move the cost into public lifts, whose price must be compared.", + "first_step": "Price one relay of a single carrier with the exact invoice of the PR5907 word.", + "blocked_by": "A legal relay construction." + }, + { + "question": "Is there a computer-free proof that the E8 Gram code is the only 8-dimensional decoding code on these 104 root lines over F_3?", + "why_it_matters": "It would replace the certificate by an argument that extends to other port sets drawn from E8 root lines.", + "first_step": "Work in clique coordinates (PROOF.md section 5a): show that the cross-block conditions force every alpha_j to have full support on its S(3,4,8) block.", + "blocked_by": "Local subsystems of three blocks admit degenerate supports, so the argument has to be global." + } + ] +} diff --git a/research/p104-carrier-code-uniqueness/VERIFY.json b/research/p104-carrier-code-uniqueness/VERIFY.json new file mode 100644 index 0000000000..1e54029242 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/VERIFY.json @@ -0,0 +1,34 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/p104-helper468-rung-removal/WORD.json.gz", + "research/p104-helper470-twin-rung-removal/WORD.json.gz" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "--parts", + "0,1" + ], + "timeout_seconds": 600, + "checks": "Authenticate pinned inputs; structure (ports, 55-regular conflict graph, clique T, f(8) = 60, f(7) = 36); Lemma-1 replay of both words with frame invariant and partner endpoints; weight-52 delivery codes pass the model equations; replay of certificate parts 0,1 with all options recomputed at every node; solution checks where present; controls; RESULT.json sections and totals." + }, + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "--parts", + "2,3" + ], + "timeout_seconds": 600, + "checks": "Authenticate pinned inputs; structure (ports, 55-regular conflict graph, clique T, f(8) = 60, f(7) = 36); Lemma-1 replay of both words with frame invariant and partner endpoints; weight-52 delivery codes pass the model equations; replay of certificate parts 2,3 with all options recomputed at every node; solution checks where present; controls; RESULT.json sections and totals." + } + ] +} diff --git a/research/p104-carrier-code-uniqueness/cert/part0.txt.gz b/research/p104-carrier-code-uniqueness/cert/part0.txt.gz new file mode 100644 index 0000000000..0be72d56f1 Binary files /dev/null and b/research/p104-carrier-code-uniqueness/cert/part0.txt.gz differ diff --git a/research/p104-carrier-code-uniqueness/cert/part1.txt.gz b/research/p104-carrier-code-uniqueness/cert/part1.txt.gz new file mode 100644 index 0000000000..6463fe72d0 Binary files /dev/null and b/research/p104-carrier-code-uniqueness/cert/part1.txt.gz differ diff --git a/research/p104-carrier-code-uniqueness/cert/part2.txt.gz b/research/p104-carrier-code-uniqueness/cert/part2.txt.gz new file mode 100644 index 0000000000..f0357d08b4 Binary files /dev/null and b/research/p104-carrier-code-uniqueness/cert/part2.txt.gz differ diff --git a/research/p104-carrier-code-uniqueness/cert/part3.txt.gz b/research/p104-carrier-code-uniqueness/cert/part3.txt.gz new file mode 100644 index 0000000000..81d75a4d7a Binary files /dev/null and b/research/p104-carrier-code-uniqueness/cert/part3.txt.gz differ diff --git a/research/p104-carrier-code-uniqueness/code8.py b/research/p104-carrier-code-uniqueness/code8.py new file mode 100644 index 0000000000..b0703a2b43 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/code8.py @@ -0,0 +1,153 @@ +"""Core of the length-8 index-code enumeration over GF(3) for the 104 P104 ports (standard library only). + +Model (see PROOF.md). Ports q_0..q_103 in F_2^9; i, j conflict iff = 1 (each q_i has odd weight). +A code is an 8-dimensional space W of vectors over the 104 ports such that for every port l some w_l in W has +w_l[l] = 1 and w_l[m] = 0 for every m conflicting with l. Fix a conflict clique T of size 8: then (w_t)_{t in T} +restricted to T is the identity, so they are a basis and every w_j = sum_{t in T_j} c_{j,t} w_t, where T_j are the +four members of T orthogonal to q_j. Unknowns: w_t[m] for m not conflicting with t (8 x 48 = 384 trits). +Gauge: rescaling coordinates by signs (diagonal D) maps codes to codes with the same zero pattern and weights; +it normalises c_j (first nonzero = 1) and is tracked on T by sign classes (canonical()). +Search: depth-first over the 96 non-clique ports, choosing at every node the port with the fewest consistent canonical +options (first port with one option, else the minimum); equations kept in incremental Gaussian elimination over +GF(3) on (ones, twos) bitmasks. Apache-2.0.""" +import itertools + +T_INDEX = [1, 5, 18, 20, 80, 85, 100, 103] + + +def dot(a, b): + return bin(a & b).count('1') & 1 + + +class Model: + def __init__(self, ports, T=T_INDEX): + self.P = list(ports); self.N = N = len(self.P) + P = self.P + assert N == 104 and len(set(P)) == 104 and all(bin(q).count('1') & 1 for q in P), 'ports' + self.T = list(T) + assert all(dot(P[a], P[b]) for a in T for b in T if a != b), 'T is not a conflict clique' + self.conf = [[m for m in range(N) if m != j and dot(P[j], P[m])] for j in range(N)] + self.nonconf = [[m for m in range(N) if m != j and not dot(P[j], P[m])] for j in range(N)] + self.var = {} + for t in T: + for m in self.nonconf[t]: + self.var[t, m] = len(self.var) + self.NV = len(self.var); self.RHS = 1 << self.NV + self.others = [j for j in range(N) if j not in T] + self.Tj = {j: [t for t in T if not dot(P[t], P[j])] for j in self.others} + assert all(len(v) == 4 for v in self.Tj.values()), 'T_j size' + self.OPT = [c for c in itertools.product((0, 1, 2), repeat=4) + if any(c) and [x for x in c if x][0] == 1] + assert len(self.OPT) == 40 + self.EQS = {(j, c): self.equations(j, c) for j in self.others for c in self.OPT} + self.pivots = {}; self.stack = [] + + # ---- GF(3) rows as (ones, twos) bitmasks; bit NV is the right-hand side + @staticmethod + def add(x, y): + x1, x2 = x; y1, y2 = y + return ((x1 & ~y1 & ~y2) | (y1 & ~x1 & ~x2) | (x2 & y2), (x2 & ~y1 & ~y2) | (y2 & ~x1 & ~x2) | (x1 & y1)) + + def equations(self, j, c): + eqs = []; cd = {t: k for t, k in zip(self.Tj[j], c) if k} + for m in self.conf[j]: + r1 = r2 = 0 + for t, k in cd.items(): + v = self.var.get((t, m)) + if v is None: + continue + if k == 1: r1 |= 1 << v + else: r2 |= 1 << v + if r1 | r2: + eqs.append((r1, r2)) + r1 = r2 = 0 + for t, k in cd.items(): + v = self.var[t, j] + if k == 1: r1 |= 1 << v + else: r2 |= 1 << v + eqs.append((r1 | self.RHS, r2)) + return eqs + + def push(self, row): + r1, r2 = row; piv = self.pivots; RHS = self.RHS + while True: + bits = (r1 | r2) & ~RHS + if not bits: + return not (r1 | r2) + c = (bits & -bits).bit_length() - 1 + p = piv.get(c) + if p is None: + if r2 >> c & 1: + r1, r2 = r2, r1 + piv[c] = (r1, r2); self.stack.append(c); return True + if r1 >> c & 1: + r1, r2 = self.add((r1, r2), (p[1], p[0])) + else: + r1, r2 = self.add((r1, r2), p) + + def mark(self): + return len(self.stack) + + def undo(self, k): + while len(self.stack) > k: + self.pivots.pop(self.stack.pop()) + + def apply(self, j, c): + """push the equations of (j, c); on inconsistency undo and return False""" + mk = self.mark() + for eq in self.EQS[j, c]: + if not self.push(eq): + self.undo(mk); return False + return True + + def consistent(self, j, c): + mk = self.mark(); ok = self.apply(j, c) + if ok: + self.undo(mk) + return ok + + # ---- sign gauge on T + def canonical(self, j, c, cls): + sup = [(t, k) for t, k in zip(self.Tj[j], c) if k] + seen = {cls[sup[0][0]]} + for t, k in sup[1:]: + q = cls[t] + if q in seen: + continue + if k != 1: + return False + seen.add(q) + return True + + def merged(self, j, c, cls): + ids = {cls[t] for t, k in zip(self.Tj[j], c) if k}; new = min(ids) + return {t: (new if q in ids else q) for t, q in cls.items()} + + def options(self, j, cls): + return [c for c in self.OPT if self.canonical(j, c, cls) and self.consistent(j, c)] + + def choose(self, rest, cls): + """MRV choice: (port, options) or (port, []) for a dead node""" + best = None + for j in sorted(rest): + ok = self.options(j, cls) + if not ok: + return j, [] + if best is None or len(ok) < len(best[1]): + best = (j, ok) + if len(ok) == 1: + break + return best + + def solution(self): + """back-substitute the unique solution (requires no free variables); returns the 104 x 104 matrix w (rows w_l)""" + assert len(self.pivots) == self.NV, 'free variables' + x = [0] * self.NV + for c in sorted(self.pivots, reverse=True): + r1, r2 = self.pivots[c] + s = 1 if r1 >> self.NV & 1 else (2 if r2 >> self.NV & 1 else 0) + for cc in range(c + 1, self.NV): + if r1 >> cc & 1: s -= x[cc] + elif r2 >> cc & 1: s -= 2 * x[cc] + x[c] = s % 3 + return x diff --git a/research/p104-carrier-code-uniqueness/e8/E8-PROOF.md b/research/p104-carrier-code-uniqueness/e8/E8-PROOF.md new file mode 100644 index 0000000000..91ef08f375 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/e8/E8-PROOF.md @@ -0,0 +1,165 @@ +# Uniqueness of the length-8 P104 decoding code via E8 (search-free proof) + +Prepared by Matarener with Claude (Anthropic), via Claude Code. 2026-10-29. + +This gives a second proof of Theorem 3 of [`../PROOF.md`](../PROOF.md), without the depth-first search certificate: +a structural argument. The argument has no branching, and every step is elementary. The finite inputs (the port +coordinates, the symmetries and the tables for Lemma V2) are listed in `ports-d8.md` and `handcert.md`, and a reader +can check them line by line. `verify_e8hand.py` re-checks everything with exact arithmetic in about a minute. + +## 0. Setting + +- Ports: 104 odd-weight vectors q in F_2^9. They are 104 of the 120 root lines of E8 (A8 coordinates). A weight-7 q + maps to e_i − e_j, where i, j are its zeros. A weight-3 q maps to 2/3 on its support and −1/3 elsewhere. +- Ports i, j *conflict* ( = 1) exactly when their roots are orthogonal. Below, "x ⊥ y" means conflict. +- Problem: W ≤ F_3^104 has dim 8, and for every port l a vector w_l ∈ W has w_l[l] = 1 and w_l[m] = 0 for all + m ⊥ l. Let M be the 104×104 matrix with rows w_l. We show that M = D·G'·D, where G' = Gram/2 mod 3 of the + roots and D is a diagonal ±1 matrix. So W is unique up to signs, and the decoding vectors are unique. + +**Coordinates mod 3.** E8 = D8 ∪ (D8 + ½·1) in orthonormal coordinates u_1..u_8. Every index involved is a power +of 2, so E8 ⊗ Z_(3) = Z_(3)^8. Roots therefore reduce to vectors of F_3^8 with the standard dot product +(½ ≡ 2). A D8 root ±u_i ± u_j reduces to itself. A half-spin root ½·s, s ∈ {±1}^8, reduces to −s. +Orthogonality is preserved, every root has square 2, and G'[x][y] = (r_x·r_y)/2 ≡ −r_x·r_y. + +**Structure of the ports (V1).** The ports contain exactly one D8 subsystem, and contain all 56 of its lines. The +other 48 ports are half-spin lines; 16 of the 64 half-spin lines are missing (listed by `verify_e8hand.py`). There +are 759 frames, that is, sets of 8 pairwise orthogonal ports. + +E8 facts used: (a) a root not in a frame F is non-orthogonal to exactly 4 members of F. (b) In frame coordinates, +every other root is ½(±r_a ± r_b ± r_c ± r_d) over a block {a,b,c,d} of the Steiner system S(3,4,8) on F. +(c) For every frame, Σ_{f∈F} (a·r_f)(r_f·b) = 2·(a·b) for all a, b, since r_f/√2 is an orthonormal basis. + +## 1. Frame factorisation (hand) + +For every frame F, M[F,F] = I, because of the diagonal and the conflict zeros. Since rank M ≤ 8, + + M = M[:,F] · M[F,:] for every frame F. (1) + +## 2. The symmetric matrix N (hand) + +Let N[t][x] = M[t][x]·M[x][t]. Then N is symmetric, N[t][t] = 1, and N[t][x] = 0 for x ⊥ t. The diagonal entry of +(1) gives + + Σ_{x∈F} N[t][x] = 1 for every port t and every frame F. (2) + +If t ∉ F, only the 4 members of F that are non-orthogonal to t contribute, by fact (a). + +## 3. Linear lemma (elementary, with tables) + +Fix t and let N(t) be the 48 ports that are non-orthogonal to t. Put h_t(x) = N[t][x] − 1 for x ∈ N(t). By (2), +the four values on F ∩ N(t) sum to 1 − 4 ≡ 0 for every frame F ∌ t. Call such a set of four a *quadruple*. + +For v ∈ r_t^⊥ (mod 3), the functions g_v(x) = (r_x·r_t)(r_x·v) satisfy every quadruple relation, by fact (c). They +form a 7-dimensional family. **Lemma V2**: every h with all quadruple relations is some g_v. Hence + + N[t][x] = 1 + (r_t·r_x)(r_x·v_t) for a unique v_t ∈ r_t^⊥ (mod 3). (3) + +*Proof.* By symmetry it suffices to treat one port per orbit. The three signed permutations of the D8 axes in +`ports-d8.md` map the missing lines to themselves, so they map ports to ports and frames to frames. They have three +orbits on ports, represented by p0, p22 and p28. For each representative the proof uses only the tables in +`handcert.md`. + +For x ∈ N(t), let x̄ be the third line of the A2 through t and x, so r_x̄ = ±(r_t − r_x). The reflection s_t in +r_t is an isometry of E8. It fixes every root orthogonal to t and swaps the lines x and x̄. So for a frame F ∌ t, +s_t(F) is again a frame, and its quadruple is the set of antipodes of the quadruple of F. + +1. *Even part.* For each antipodal pair p = {x, x̄} of ports, put σ(p) = h(x) + h(x̄). Suppose F and s_t(F) are + both port frames; the tables list them. Adding their two quadruple relations gives σ(p1) + … + σ(p4) = 0 over + the four pairs. Call this a *tetrad*. + Now take tetrads A = {p, q, a, b}, B = {p, q, c, d} and C = {a, b, c, d}. Then A + B − C gives + 2(σ(p) + σ(q)) = 0, so σ(p) = −σ(q). + The tables give such edges forming a spanning tree of all 20–21 pairs, plus one triangle. Around the triangle, + σ(p) = −σ(q) = σ(s) = −σ(p), so 2σ(p) = 0 and σ(p) = 0. Along the tree, σ = 0 on every pair. So h(x̄) = −h(x) + whenever both are ports. +2. *Odd closure.* Take 7 seeds whose roots, together with r_t, are independent mod 3. Each table step fixes one more + value of h, either by the antipode rule or by a quadruple with three known values. After 41 steps every value on + N(t) is a fixed linear combination of the 7 seed values. So the solution space has dimension at most 7. It + contains the 7-dimensional family g_v, so the two are equal. ∎ + +`verify_e8hand.py` (V2) re-checks the rank, 41 for every port, as an independent cross-check. + +## 4. Symmetry and A2 triangles kill v_t (hand + V3) + +Fix a root representative r_a for every port a. Because N is symmetric and r_a·r_b = ±1 for non-orthogonal a, b, +(3) gives + + r_b·v_a = r_a·v_b for all non-orthogonal ports a, b. (4) + +Let {t, x, y} be an A2 triangle of ports. Choose signs so that r_t·r_x = 1 and r_y = r_t − r_x. Then +r_y·r_t = 1 and r_y·r_x = −1. Using (4) together with v_a ⊥ r_a: + + r_y·v_t = (r_t − r_x)·v_t = −r_x·v_t, + r_y·v_t = r_t·v_y = (r_x + r_y)·v_y = r_x·v_y = r_y·v_x = (r_t − r_x)·v_x = r_t·v_x = r_x·v_t. + +So 2·(r_x·v_t) = 0, which gives r_x·v_t = 0 in characteristic 3. + +**V3**: for every port t, r_t and the r_x with x ∈ N(t) whose A2 third line is a port span F_3^8. (There are 40 +or 42 such x.) Hence v_t = 0 and N[t][x] = 1 for every non-orthogonal pair. Equivalently, + + M[t][x] = M[x][t] ∈ {±1} for x non-orthogonal to t. (5) + +So M is symmetric with exactly the E8 zero pattern. (V4 cross-checks steps 3–4 as one linear system.) + +## 5. Signs (hand + V5) + +Take the D8 matching frame T. By (b), every non-T port j is ½Σ_{t∈B_j} ε_j(t) r_t over a block B_j. Put +α_j(t) = M[j][t] for t ∈ B_j. These are ±1 by (5), and M[t][j] = α_j(t). + +For a pair {a, b} ⊂ T, three blocks contain it. A line j in one of them has σ_ab(j) = ε_j(a)ε_j(b). Take two lines +j, k in different blocks through {a, b} with σ_ab(j) ≠ σ_ab(k). They are orthogonal, and the only common frame +coordinates are a and b. So (1) gives α_j(a)α_k(a) + α_j(b)α_k(b) = 0, that is, +α_j(a)α_j(b) = −α_k(a)α_k(b). + +By V5, every block through {a, b} has ports of both signs. Hence ρ_s(ab) := α_j(a)α_j(b) depends only on +s = σ_ab(j), and ρ_−(ab) = −ρ_+(ab). So α_j(a)α_j(b) = σ_ab(j)·ρ_+(ab). + +Around a triangle a, b, c, take a port of the block through a, b, c. The product of its three pair products is 1, +and so is the product of its σ's. Hence ρ_+(ab)ρ_+(bc)ρ_+(ca) = 1. A function on the pairs of 8 points whose +product around every triangle is 1 is a coboundary: ρ_+(ab) = d_a d_b with d_t = ±1. Therefore +α_j(t) = c_j d_t ε_j(t) for some sign c_j. + +Now (1) gives M[j][k] = Σ_t α_j(t)α_k(t) = c_j c_k Σ_{t∈B_j∩B_k} ε_j(t)ε_k(t). This equals c_j c_k G'[j][k], +because G' = r·r/2 = ¼Σεε ≡ Σεε mod 3. Also M[j][t] = c_j d_t ε_j(t) = −c_j d_t G'[j][t]. With D_j = c_j off T and +D_t = −d_t on T, we get M = D G' D. ∎ + +## What is checked by a script + +None of the hand steps depends on a computer. The finite inputs are tables a reader can check line by line: + +- the port coordinates and symmetry generators in `ports-d8.md`; +- the tetrads, edges and closure steps in `handcert.md`; +- the A2 span (V3) and the availability fact (V5). + +`verify_e8hand.py` re-checks all of these (V1–V5) with exact arithmetic and no search, in about a minute +(`python3 -B verify_e8hand.py`, final line `RESULT PASS`). + +## Lean formalization + +The whole argument is formalized in [`../lean/CarrierCode/E8*.lean`](../lean/CarrierCode). The final theorem +`CarrierCode.E8.decoding_unique` in `E8Main.lean` states: if a 104 × 104 matrix `M` over `ZMod 3` factors as +`A * B` with inner dimension 8, has unit diagonal, and vanishes on conflicting pairs (orthogonal roots), then +`M = D (2 Gm) D` for a diagonal `±1` matrix `D`, where `Gm` is the Gram form of the roots mod 3. + +- `E8.lean`: the general steps (frame factorisation, frame sums, coboundary). +- `E8Step3.lean`, `E8Step4.lean`, `E8Step5.lean`: steps 3–5, including the general A2 trick. +- `E8Data*.lean`, `E8Cert.lean`: the finite inputs as lists of naturals (roots mod 3, the 759 frames, the step-3 + certificates, the A2 triangles with inverse matrices, the sign trees). Every property used is re-checked by the + kernel (`decide +kernel` in `E8Check*.lean`), so the provenance of these lists does not matter. +- No `native_decide`. `#print axioms CarrierCode.E8.decoding_unique` gives `propext`, `Classical.choice` and + `Quot.sound` only. + +The E8 files are not imported by the default target, because the step-3 checks are heavy: each `E8Check3_k` needs +about 8 GB of memory and 3 minutes. Build them one at a time: + +```sh +cd research/p104-carrier-code-uniqueness/lean && lake exe cache get +for t in E8CheckFrames E8Check3_0 E8Check3_1 E8Check3_2 E8Check3_3 E8Check3_4 E8Check3_5 E8Check3_6 E8Check3_7 \ + E8Check4 E8Check5 E8Main; do lake build CarrierCode.$t || break; done +``` + +A full sequential build took about 35 minutes on a 4-core, 31 GB machine. + +Scope: the theorem is stated for the port order of `E8Data.lean`, which is the order of [`ports.json`](ports.json) +(odd-weight vectors of F_2^9 as integers), and for a +matrix `M` of decoding vectors. The link to the word-level `CodeFact` hypothesis of `../lean` (where the code is +the row space of `M`) is not formalized, and the weight part of `CodeFact` is still checked by `verify.py`. diff --git a/research/p104-carrier-code-uniqueness/e8/handcert.md b/research/p104-carrier-code-uniqueness/e8/handcert.md new file mode 100644 index 0000000000..a98809ea84 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/e8/handcert.md @@ -0,0 +1,230 @@ +# Tables for Lemma V2 (generated by handcert.py) + +Ports are named p0..p103 by their position in ports.json. For each orbit representative t: N(t), antipodal pairs, tetrads, the sigma-graph certificate and the odd closure. + +## t = p0 (orbit of size 32) + +N(t): p1, p2, p3, p4, p5, p11, p12, p13, p22, p28, p29, p30, p43, p44, p45, p46, p47, p48, p49, p50, p51, p61, p62, p63, p64, p65, p66, p67, p68, p69, p71, p73, p74, p75, p76, p77, p78, p80, p81, p82, p83, p84, p85, p90, p91, p92, p93, p94 + +Antipodal pairs (both ports): P0={p1,p90}, P1={p2,p91}, P2={p3,p93}, P3={p4,p94}, P4={p5,p78}, P5={p11,p81}, P6={p12,p82}, P7={p13,p84}, P8={p22,p71}, P9={p28,p73}, P10={p29,p75}, P11={p30,p76}, P12={p43,p69}, P13={p44,p68}, P14={p45,p67}, P15={p46,p66}, P16={p47,p65}, P17={p48,p64}, P18={p49,p63}, P19={p50,p62}, P20={p51,p61} + +Odd triangle: P0, P4, P13. + +Edges (sigma_p = -sigma_q), each from tetrads A, B sharing {p,q} and C = A xor B: + +- P0 ~ P1: A={P0,P1,P14,P17} [F=p1 p8 p21 p26 p37 p45 p64 p91; s_t F=p2 p8 p21 p26 p37 p48 p67 p90]; B={P0,P1,P13,P16} [F=p1 p8 p21 p27 p36 p44 p65 p91; s_t F=p2 p8 p21 p27 p36 p47 p68 p90]; C={P13,P14,P16,P17} [F=p8 p14 p21 p44 p48 p65 p67 p79; s_t F=p8 p14 p21 p45 p47 p64 p68 p79] +- P0 ~ P2: A={P0,P2,P14,P20} [F=p1 p7 p20 p25 p35 p45 p61 p93; s_t F=p3 p7 p20 p25 p35 p51 p67 p90]; B={P0,P2,P12,P18} [F=p1 p7 p20 p27 p34 p43 p63 p93; s_t F=p3 p7 p20 p27 p34 p49 p69 p90]; C={P12,P14,P18,P20} [F=p7 p16 p20 p43 p51 p63 p67 p79; s_t F=p7 p16 p20 p45 p49 p61 p69 p79] +- P0 ~ P3: A={P0,P3,P12,P19} [F=p1 p7 p19 p26 p34 p43 p62 p94; s_t F=p4 p7 p19 p26 p34 p50 p69 p90]; B={P0,P3,P13,P20} [F=p1 p8 p18 p24 p36 p44 p61 p94; s_t F=p4 p8 p18 p24 p36 p51 p68 p90]; C={P12,P13,P19,P20} [F=p7 p17 p19 p43 p51 p62 p68 p79; s_t F=p7 p17 p19 p44 p50 p61 p69 p79] +- P0 ~ P4: A={P0,P4,P11,P13} [F=p1 p5 p18 p24 p30 p44 p52 p103; s_t F=p18 p24 p52 p68 p76 p78 p90 p103]; B={P0,P4,P10,P12} [F=p1 p5 p19 p26 p29 p43 p54 p101; s_t F=p19 p26 p54 p69 p75 p78 p90 p101]; C={P10,P11,P12,P13} [F=p24 p29 p33 p42 p43 p52 p68 p76; s_t F=p24 p30 p33 p42 p44 p52 p69 p75] +- P0 ~ P5: A={P0,P5,P11,P19} [F=p1 p9 p11 p24 p30 p39 p62 p103; s_t F=p9 p24 p39 p50 p76 p81 p90 p103]; B={P0,P5,P10,P20} [F=p1 p11 p20 p29 p35 p55 p61 p88; s_t F=p20 p35 p51 p55 p75 p81 p88 p90]; C={P10,P11,P19,P20} [F=p19 p29 p50 p61 p76 p79 p89 p95; s_t F=p19 p30 p51 p62 p75 p79 p89 p95] +- P0 ~ P6: A={P0,P6,P8,P12} [F=p1 p9 p12 p22 p36 p43 p54 p101; s_t F=p9 p36 p54 p69 p71 p82 p90 p101]; B={P0,P6,P11,P17} [F=p1 p9 p12 p25 p30 p39 p64 p101; s_t F=p9 p25 p39 p48 p76 p82 p90 p101]; C={P8,P11,P12,P17} [F=p9 p22 p43 p48 p76 p79 p96 p101; s_t F=p9 p30 p64 p69 p71 p79 p96 p101] +- P0 ~ P7: A={P0,P7,P8,P14} [F=p1 p7 p13 p22 p35 p45 p52 p102; s_t F=p7 p35 p52 p67 p71 p84 p90 p102]; B={P0,P7,P10,P16} [F=p1 p8 p13 p27 p29 p39 p65 p100; s_t F=p8 p27 p39 p47 p75 p84 p90 p100]; C={P8,P10,P14,P16} [F=p8 p22 p45 p47 p75 p79 p98 p100; s_t F=p8 p29 p65 p67 p71 p79 p98 p100] +- P0 ~ P8: A={P0,P7,P8,P14} [F=p1 p7 p13 p22 p35 p45 p52 p102; s_t F=p7 p35 p52 p67 p71 p84 p90 p102]; B={P0,P6,P8,P12} [F=p1 p9 p12 p22 p36 p43 p54 p101; s_t F=p9 p36 p54 p69 p71 p82 p90 p101]; C={P6,P7,P12,P14} [F=p7 p12 p16 p41 p43 p52 p67 p84; s_t F=p7 p13 p16 p41 p45 p52 p69 p82] +- P0 ~ P10: A={P0,P4,P10,P12} [F=p1 p5 p19 p26 p29 p43 p54 p101; s_t F=p19 p26 p54 p69 p75 p78 p90 p101]; B={P0,P7,P10,P16} [F=p1 p8 p13 p27 p29 p39 p65 p100; s_t F=p8 p27 p39 p47 p75 p84 p90 p100]; C={P4,P7,P12,P16} [F=p5 p27 p43 p47 p72 p84 p96 p100; s_t F=p13 p27 p65 p69 p72 p78 p96 p100] +- P0 ~ P11: A={P0,P4,P11,P13} [F=p1 p5 p18 p24 p30 p44 p52 p103; s_t F=p18 p24 p52 p68 p76 p78 p90 p103]; B={P0,P5,P11,P19} [F=p1 p9 p11 p24 p30 p39 p62 p103; s_t F=p9 p24 p39 p50 p76 p81 p90 p103]; C={P4,P5,P13,P19} [F=p5 p15 p21 p44 p50 p55 p58 p81; s_t F=p11 p15 p21 p55 p58 p62 p68 p78] +- P0 ~ P12: A={P0,P4,P10,P12} [F=p1 p5 p19 p26 p29 p43 p54 p101; s_t F=p19 p26 p54 p69 p75 p78 p90 p101]; B={P0,P3,P12,P19} [F=p1 p7 p19 p26 p34 p43 p62 p94; s_t F=p4 p7 p19 p26 p34 p50 p69 p90]; C={P3,P4,P10,P19} [F=p4 p5 p15 p23 p29 p50 p55 p100; s_t F=p15 p23 p55 p62 p75 p78 p94 p100] +- P0 ~ P13: A={P0,P4,P11,P13} [F=p1 p5 p18 p24 p30 p44 p52 p103; s_t F=p18 p24 p52 p68 p76 p78 p90 p103]; B={P0,P3,P13,P20} [F=p1 p8 p18 p24 p36 p44 p61 p94; s_t F=p4 p8 p18 p24 p36 p51 p68 p90]; C={P3,P4,P11,P20} [F=p4 p5 p16 p23 p30 p51 p55 p99; s_t F=p16 p23 p55 p61 p76 p78 p94 p99] +- P0 ~ P14: A={P0,P7,P8,P14} [F=p1 p7 p13 p22 p35 p45 p52 p102; s_t F=p7 p35 p52 p67 p71 p84 p90 p102]; B={P0,P2,P14,P20} [F=p1 p7 p20 p25 p35 p45 p61 p93; s_t F=p3 p7 p20 p25 p35 p51 p67 p90]; C={P2,P7,P8,P20} [F=p3 p6 p13 p22 p33 p51 p54 p99; s_t F=p6 p33 p54 p61 p71 p84 p93 p99] +- P0 ~ P15: A={P0,P7,P11,P15} [F=p1 p9 p13 p27 p30 p39 p66 p99; s_t F=p9 p27 p39 p46 p76 p84 p90 p99]; B={P0,P1,P12,P15} [F=p1 p9 p20 p27 p36 p43 p66 p91; s_t F=p2 p9 p20 p27 p36 p46 p69 p90]; C={P1,P7,P11,P12} [F=p2 p9 p13 p27 p30 p40 p69 p96; s_t F=p9 p27 p40 p43 p76 p84 p91 p96] +- P0 ~ P16: A={P0,P7,P10,P16} [F=p1 p8 p13 p27 p29 p39 p65 p100; s_t F=p8 p27 p39 p47 p75 p84 p90 p100]; B={P0,P1,P13,P16} [F=p1 p8 p21 p27 p36 p44 p65 p91; s_t F=p2 p8 p21 p27 p36 p47 p68 p90]; C={P1,P7,P10,P13} [F=p2 p8 p13 p27 p29 p40 p68 p97; s_t F=p8 p27 p40 p44 p75 p84 p91 p97] +- P0 ~ P17: A={P0,P1,P14,P17} [F=p1 p8 p21 p26 p37 p45 p64 p91; s_t F=p2 p8 p21 p26 p37 p48 p67 p90]; B={P0,P6,P11,P17} [F=p1 p9 p12 p25 p30 p39 p64 p101; s_t F=p9 p25 p39 p48 p76 p82 p90 p101]; C={P1,P6,P11,P14} [F=p2 p9 p12 p25 p30 p40 p67 p98; s_t F=p9 p25 p40 p45 p76 p82 p91 p98] +- P0 ~ P19: A={P0,P3,P12,P19} [F=p1 p7 p19 p26 p34 p43 p62 p94; s_t F=p4 p7 p19 p26 p34 p50 p69 p90]; B={P0,P5,P11,P19} [F=p1 p9 p11 p24 p30 p39 p62 p103; s_t F=p9 p24 p39 p50 p76 p81 p90 p103]; C={P3,P5,P11,P12} [F=p4 p9 p11 p24 p30 p42 p69 p96; s_t F=p9 p24 p42 p43 p76 p81 p94 p96] +- P0 ~ P20: A={P0,P2,P14,P20} [F=p1 p7 p20 p25 p35 p45 p61 p93; s_t F=p3 p7 p20 p25 p35 p51 p67 p90]; B={P0,P3,P13,P20} [F=p1 p8 p18 p24 p36 p44 p61 p94; s_t F=p4 p8 p18 p24 p36 p51 p68 p90]; C={P2,P3,P13,P14} [F=p3 p7 p15 p25 p31 p44 p67 p94; s_t F=p4 p7 p15 p25 p31 p45 p68 p93] +- P4 ~ P13: A={P0,P4,P11,P13} [F=p1 p5 p18 p24 p30 p44 p52 p103; s_t F=p18 p24 p52 p68 p76 p78 p90 p103]; B={P2,P4,P9,P13} [F=p3 p5 p14 p24 p28 p44 p56 p103; s_t F=p14 p24 p56 p68 p73 p78 p93 p103]; C={P0,P2,P9,P11} [F=p1 p24 p30 p37 p73 p86 p93 p103; s_t F=p3 p24 p28 p37 p76 p86 p90 p103] +- P9 ~ P15: A={P2,P7,P9,P15} [F=p3 p6 p13 p27 p28 p41 p66 p99; s_t F=p6 p27 p41 p46 p73 p84 p93 p99]; B={P8,P9,P15,P20} [F=p22 p35 p36 p46 p51 p56 p59 p73; s_t F=p28 p35 p36 p56 p59 p61 p66 p71]; C={P2,P7,P8,P20} [F=p3 p6 p13 p22 p33 p51 p54 p99; s_t F=p6 p33 p54 p61 p71 p84 p93 p99] +- P15 ~ P18: A={P1,P2,P15,P18} [F=p2 p10 p15 p23 p37 p46 p63 p93; s_t F=p3 p10 p15 p23 p37 p49 p66 p91]; B={P15,P17,P18,P20} [F=p6 p18 p20 p46 p51 p63 p64 p79; s_t F=p6 p18 p20 p48 p49 p61 p66 p79]; C={P1,P2,P17,P20} [F=p2 p6 p20 p25 p33 p48 p61 p93; s_t F=p3 p6 p20 p25 p33 p51 p64 p91] + +Odd closure. Seeds: p30, p28, p83, p66, p74, p90, p61 (their roots and r_t are independent mod 3). + +- p1 = -p90 (antipode) +- p76 = -p30 (antipode) +- p46 = -p66 (antipode) +- p51 = -p61 (antipode) +- p73 = -p28 (antipode) +- p13 from quadruple {p1, p13, p30, p66} +- p85 from quadruple {p1, p61, p66, p85} +- p22 from quadruple {p1, p22, p73, p85} +- p93 from quadruple {p1, p30, p73, p93} +- p45 from quadruple {p1, p45, p61, p93} +- p2 from quadruple {p2, p22, p74, p85} +- p63 from quadruple {p2, p46, p63, p93} +- p48 from quadruple {p2, p48, p61, p93} +- p3 from quadruple {p3, p13, p22, p51} +- p94 from quadruple {p3, p13, p83, p94} +- p67 from quadruple {p3, p51, p67, p90} +- p5 from quadruple {p5, p45, p46, p83} +- p80 from quadruple {p5, p46, p51, p80} +- p49 from quadruple {p5, p48, p49, p80} +- p81 from quadruple {p5, p45, p49, p81} +- p43 from quadruple {p5, p43, p48, p83} +- p71 from quadruple {p5, p28, p71, p80} +- p11 from quadruple {p11, p46, p63, p83} +- p82 from quadruple {p13, p51, p63, p82} +- p50 from quadruple {p13, p50, p66, p81} +- p64 from quadruple {p46, p51, p63, p64} +- p47 from quadruple {p22, p47, p50, p73} +- p91 from quadruple {p50, p73, p83, p91} +- p84 from quadruple {p49, p73, p84, p91} +- p65 from quadruple {p65, p71, p81, p93} +- p92 from quadruple {p63, p71, p83, p92} +- p62 from quadruple {p62, p71, p84, p92} +- p12 from quadruple {p12, p49, p61, p84} +- p68 from quadruple {p12, p43, p68, p83} +- p69 from quadruple {p13, p45, p69, p82} +- p44 from quadruple {p44, p50, p63, p67} +- p75 from quadruple {p22, p44, p48, p75} +- p29 from quadruple {p29, p64, p68, p71} +- p77 from quadruple {p22, p43, p47, p77} +- p78 from quadruple {p11, p63, p67, p78} +- p4 = -p94 (antipode) + +## t = p22 (orbit of size 48) + +N(t): p0, p5, p14, p15, p16, p17, p18, p19, p20, p21, p23, p24, p25, p26, p27, p28, p29, p30, p39, p40, p41, p42, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p80, p81, p82, p83, p84, p86, p87, p88, p89, p90, p91, p92, p93, p94 + +Antipodal pairs (both ports): P0={p0,p71}, P1={p5,p70}, P2={p15,p69}, P3={p16,p68}, P4={p17,p67}, P5={p18,p65}, P6={p19,p63}, P7={p20,p62}, P8={p21,p61}, P9={p23,p90}, P10={p24,p91}, P11={p25,p92}, P12={p26,p93}, P13={p27,p94}, P14={p29,p87}, P15={p30,p88}, P16={p39,p80}, P17={p40,p81}, P18={p41,p83}, P19={p42,p84} + +Odd triangle: P0, P5, P19. + +Edges (sigma_p = -sigma_q), each from tetrads A, B sharing {p,q} and C = A xor B: + +- P0 ~ P3: A={P0,P3,P12,P16} [F=p0 p7 p16 p26 p31 p39 p56 p103; s_t F=p7 p31 p56 p68 p71 p80 p93 p103]; B={P0,P3,P9,P18} [F=p0 p8 p16 p23 p36 p41 p53 p101; s_t F=p8 p36 p53 p68 p71 p83 p90 p101]; C={P9,P12,P16,P18} [F=p7 p23 p41 p50 p74 p80 p93 p103; s_t F=p7 p26 p39 p50 p74 p83 p90 p103] +- P0 ~ P4: A={P0,P4,P9,P19} [F=p0 p7 p17 p23 p35 p42 p52 p102; s_t F=p7 p35 p52 p67 p71 p84 p90 p102]; B={P0,P4,P13,P16} [F=p0 p7 p17 p27 p31 p39 p57 p102; s_t F=p7 p31 p57 p67 p71 p80 p94 p102]; C={P9,P13,P16,P19} [F=p7 p23 p42 p49 p74 p80 p94 p102; s_t F=p7 p27 p39 p49 p74 p84 p90 p102] +- P0 ~ P5: A={P0,P5,P10,P18} [F=p0 p6 p18 p24 p32 p41 p52 p103; s_t F=p6 p32 p52 p65 p71 p83 p91 p103]; B={P0,P5,P12,P17} [F=p0 p6 p18 p26 p31 p40 p54 p103; s_t F=p6 p31 p54 p65 p71 p81 p93 p103]; C={P10,P12,P17,P18} [F=p6 p24 p41 p50 p73 p81 p93 p103; s_t F=p6 p26 p40 p50 p73 p83 p91 p103] +- P0 ~ P8: A={P0,P8,P12,P19} [F=p0 p6 p21 p26 p33 p42 p54 p99; s_t F=p6 p33 p54 p61 p71 p84 p93 p99]; B={P0,P8,P13,P18} [F=p0 p6 p21 p27 p32 p41 p55 p99; s_t F=p6 p32 p55 p61 p71 p83 p94 p99]; C={P12,P13,P18,P19} [F=p6 p26 p42 p46 p73 p83 p94 p99; s_t F=p6 p27 p41 p46 p73 p84 p93 p99] +- P0 ~ P9: A={P0,P4,P9,P19} [F=p0 p7 p17 p23 p35 p42 p52 p102; s_t F=p7 p35 p52 p67 p71 p84 p90 p102]; B={P0,P3,P9,P18} [F=p0 p8 p16 p23 p36 p41 p53 p101; s_t F=p8 p36 p53 p68 p71 p83 p90 p101]; C={P3,P4,P18,P19} [F=p7 p12 p16 p41 p43 p52 p67 p84; s_t F=p7 p12 p17 p42 p43 p52 p68 p83] +- P0 ~ P11: A={P0,P6,P11,P18} [F=p0 p6 p19 p25 p32 p41 p53 p101; s_t F=p6 p32 p53 p63 p71 p83 p92 p101]; B={P0,P7,P11,P19} [F=p0 p6 p20 p25 p33 p42 p53 p100; s_t F=p6 p33 p53 p62 p71 p84 p92 p100]; C={P6,P7,P18,P19} [F=p6 p11 p19 p41 p46 p53 p62 p84; s_t F=p6 p11 p20 p42 p46 p53 p63 p83] +- P0 ~ P12: A={P0,P5,P12,P17} [F=p0 p6 p18 p26 p31 p40 p54 p103; s_t F=p6 p31 p54 p65 p71 p81 p93 p103]; B={P0,P8,P12,P19} [F=p0 p6 p21 p26 p33 p42 p54 p99; s_t F=p6 p33 p54 p61 p71 p84 p93 p99]; C={P5,P8,P17,P19} [F=p6 p12 p18 p40 p49 p54 p61 p84; s_t F=p6 p12 p21 p42 p49 p54 p65 p81] +- P0 ~ P13: A={P0,P8,P13,P18} [F=p0 p6 p21 p27 p32 p41 p55 p99; s_t F=p6 p32 p55 p61 p71 p83 p94 p99]; B={P0,P4,P13,P16} [F=p0 p7 p17 p27 p31 p39 p57 p102; s_t F=p7 p31 p57 p67 p71 p80 p94 p102]; C={P4,P8,P16,P18} [F=p7 p12 p17 p39 p50 p57 p61 p83; s_t F=p7 p12 p21 p41 p50 p57 p67 p80] +- P0 ~ P16: A={P0,P3,P12,P16} [F=p0 p7 p16 p26 p31 p39 p56 p103; s_t F=p7 p31 p56 p68 p71 p80 p93 p103]; B={P0,P4,P13,P16} [F=p0 p7 p17 p27 p31 p39 p57 p102; s_t F=p7 p31 p57 p67 p71 p80 p94 p102]; C={P3,P4,P12,P13} [F=p16 p26 p60 p67 p73 p78 p94 p99; s_t F=p17 p27 p60 p68 p73 p78 p93 p99] +- P0 ~ P18: A={P0,P5,P10,P18} [F=p0 p6 p18 p24 p32 p41 p52 p103; s_t F=p6 p32 p52 p65 p71 p83 p91 p103]; B={P0,P6,P11,P18} [F=p0 p6 p19 p25 p32 p41 p53 p101; s_t F=p6 p32 p53 p63 p71 p83 p92 p101]; C={P5,P6,P10,P11} [F=p1 p10 p18 p24 p38 p44 p63 p92; s_t F=p1 p10 p19 p25 p38 p44 p65 p91] +- P0 ~ P19: A={P0,P7,P11,P19} [F=p0 p6 p20 p25 p33 p42 p53 p100; s_t F=p6 p33 p53 p62 p71 p84 p92 p100]; B={P0,P8,P12,P19} [F=p0 p6 p21 p26 p33 p42 p54 p99; s_t F=p6 p33 p54 p61 p71 p84 p93 p99]; C={P7,P8,P11,P12} [F=p1 p7 p20 p25 p35 p45 p61 p93; s_t F=p1 p7 p21 p26 p35 p45 p62 p92] +- P1 ~ P9: A={P1,P3,P9,P15} [F=p2 p5 p16 p23 p30 p47 p52 p103; s_t F=p2 p47 p52 p68 p70 p88 p90 p103]; B={P1,P2,P9,P14} [F=p3 p5 p15 p23 p29 p49 p54 p101; s_t F=p3 p49 p54 p69 p70 p87 p90 p101]; C={P2,P3,P14,P15} [F=p2 p13 p15 p29 p33 p52 p68 p88; s_t F=p2 p13 p16 p30 p33 p52 p69 p87] +- P2 ~ P9: A={P2,P7,P9,P13} [F=p2 p9 p15 p23 p36 p46 p62 p94; s_t F=p2 p9 p20 p27 p36 p46 p69 p90]; B={P2,P6,P9,P12} [F=p2 p10 p15 p23 p37 p46 p63 p93; s_t F=p2 p10 p19 p26 p37 p46 p69 p90]; C={P6,P7,P12,P13} [F=p1 p7 p19 p26 p34 p43 p62 p94; s_t F=p1 p7 p20 p27 p34 p43 p63 p93] +- P5 ~ P19: A={P1,P2,P5,P19} [F=p4 p5 p15 p18 p84 p85 p96 p100; s_t F=p4 p42 p65 p69 p70 p85 p96 p100]; B={P5,P8,P17,P19} [F=p6 p12 p18 p40 p49 p54 p61 p84; s_t F=p6 p12 p21 p42 p49 p54 p65 p81]; C={P1,P2,P8,P17} [F=p5 p15 p21 p44 p50 p55 p58 p81; s_t F=p40 p44 p50 p55 p58 p61 p69 p70] +- P6 ~ P9: A={P2,P6,P9,P12} [F=p2 p10 p15 p23 p37 p46 p63 p93; s_t F=p2 p10 p19 p26 p37 p46 p69 p90]; B={P3,P6,P9,P11} [F=p2 p10 p16 p23 p38 p47 p63 p92; s_t F=p2 p10 p19 p25 p38 p47 p68 p90]; C={P2,P3,P11,P12} [F=p4 p7 p15 p25 p31 p45 p68 p93; s_t F=p4 p7 p16 p26 p31 p45 p69 p92] +- P7 ~ P9: A={P2,P7,P9,P13} [F=p2 p9 p15 p23 p36 p46 p62 p94; s_t F=p2 p9 p20 p27 p36 p46 p69 p90]; B={P4,P7,P9,P11} [F=p2 p9 p17 p23 p38 p48 p62 p92; s_t F=p2 p9 p20 p25 p38 p48 p67 p90]; C={P2,P4,P11,P13} [F=p3 p7 p15 p25 p31 p44 p67 p94; s_t F=p3 p7 p17 p27 p31 p44 p69 p92] +- P9 ~ P10: A={P3,P5,P9,P10} [F=p4 p8 p16 p23 p36 p51 p65 p91; s_t F=p4 p8 p18 p24 p36 p51 p68 p90]; B={P9,P10,P16,P17} [F=p9 p23 p40 p50 p76 p80 p91 p103; s_t F=p9 p24 p39 p50 p76 p81 p90 p103]; C={P3,P5,P16,P17} [F=p8 p13 p16 p39 p51 p58 p65 p81; s_t F=p8 p13 p18 p40 p51 p58 p68 p80] +- P9 ~ P14: A={P1,P2,P9,P14} [F=p3 p5 p15 p23 p29 p49 p54 p101; s_t F=p3 p49 p54 p69 p70 p87 p90 p101]; B={P5,P9,P14,P19} [F=p18 p35 p46 p52 p76 p84 p87 p90; s_t F=p23 p29 p35 p42 p46 p52 p65 p76]; C={P1,P2,P5,P19} [F=p4 p5 p15 p18 p84 p85 p96 p100; s_t F=p4 p42 p65 p69 p70 p85 p96 p100] +- P9 ~ P15: A={P1,P3,P9,P15} [F=p2 p5 p16 p23 p30 p47 p52 p103; s_t F=p2 p47 p52 p68 p70 p88 p90 p103]; B={P7,P9,P15,P17} [F=p20 p34 p49 p53 p77 p81 p88 p90; s_t F=p23 p30 p34 p40 p49 p53 p62 p77]; C={P1,P3,P7,P17} [F=p2 p5 p16 p20 p81 p85 p97 p103; s_t F=p2 p40 p62 p68 p70 p85 p97 p103] +- P9 ~ P17: A={P9,P10,P16,P17} [F=p9 p23 p40 p50 p76 p80 p91 p103; s_t F=p9 p24 p39 p50 p76 p81 p90 p103]; B={P7,P9,P15,P17} [F=p20 p34 p49 p53 p77 p81 p88 p90; s_t F=p23 p30 p34 p40 p49 p53 p62 p77]; C={P7,P10,P15,P16} [F=p1 p9 p11 p20 p80 p88 p91 p103; s_t F=p1 p9 p11 p24 p30 p39 p62 p103] + +Odd closure. Seeds: p24, p80, p21, p65, p71, p90, p92 (their roots and r_t are independent mod 3). + +- p61 = -p21 (antipode) +- p91 = -p24 (antipode) +- p23 = -p90 (antipode) +- p39 = -p80 (antipode) +- p18 = -p65 (antipode) +- p25 = -p92 (antipode) +- p0 = -p71 (antipode) +- p41 from quadruple {p0, p18, p24, p41} +- p19 from quadruple {p0, p19, p25, p41} +- p27 from quadruple {p0, p21, p27, p41} +- p17 from quadruple {p0, p17, p27, p39} +- p16 from quadruple {p0, p16, p23, p41} +- p87 from quadruple {p0, p17, p18, p87} +- p42 from quadruple {p0, p17, p23, p42} +- p26 from quadruple {p0, p21, p26, p42} +- p14 from quadruple {p0, p14, p24, p39} +- p15 from quadruple {p0, p15, p25, p39} +- p20 from quadruple {p0, p20, p25, p42} +- p89 from quadruple {p0, p14, p19, p89} +- p40 from quadruple {p0, p14, p23, p40} +- p88 from quadruple {p0, p14, p20, p88} +- p86 from quadruple {p0, p15, p21, p86} +- p72 from quadruple {p0, p24, p72, p86} +- p70 from quadruple {p0, p40, p70, p86} +- p5 from quadruple {p5, p18, p20, p80} +- p30 from quadruple {p5, p18, p24, p30} +- p29 from quadruple {p5, p19, p26, p29} +- p94 from quadruple {p19, p80, p86, p94} +- p62 from quadruple {p19, p26, p62, p94} +- p93 from quadruple {p20, p25, p61, p93} +- p63 from quadruple {p20, p27, p63, p93} +- p64 from quadruple {p21, p26, p64, p91} +- p66 from quadruple {p27, p30, p39, p66} +- p81 from quadruple {p5, p16, p20, p81} +- p28 from quadruple {p27, p28, p40, p63} +- p68 from quadruple {p27, p29, p40, p68} +- p67 from quadruple {p21, p26, p67, p90} +- p69 from quadruple {p27, p30, p40, p69} +- p83 from quadruple {p5, p14, p20, p83} +- p84 from quadruple {p5, p14, p19, p84} +- p82 from quadruple {p5, p14, p21, p82} + +## t = p28 (orbit of size 24) + +N(t): p0, p1, p7, p8, p9, p10, p18, p19, p20, p21, p22, p23, p29, p30, p31, p32, p33, p39, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p67, p68, p69, p70, p72, p73, p78, p81, p82, p83, p84, p85, p91, p92, p93, p94, p95, p96, p97, p98 + +Antipodal pairs (both ports): P0={p0,p73}, P1={p1,p72}, P2={p8,p69}, P3={p9,p68}, P4={p10,p67}, P5={p18,p50}, P6={p19,p48}, P7={p20,p47}, P8={p21,p46}, P9={p23,p85}, P10={p29,p96}, P11={p30,p97}, P12={p31,p91}, P13={p32,p93}, P14={p33,p94}, P15={p39,p78}, P16={p52,p81}, P17={p53,p82}, P18={p54,p83}, P19={p55,p84} + +Odd triangle: P0, P5, P14. + +Edges (sigma_p = -sigma_q), each from tetrads A, B sharing {p,q} and C = A xor B: + +- P0 ~ P3: A={P0,P3,P13,P15} [F=p0 p9 p14 p24 p32 p39 p56 p103; s_t F=p14 p24 p56 p68 p73 p78 p93 p103]; B={P0,P3,P9,P18} [F=p0 p9 p17 p23 p38 p42 p54 p99; s_t F=p17 p38 p42 p68 p73 p83 p85 p99]; C={P9,P13,P15,P18} [F=p14 p23 p54 p65 p74 p78 p93 p103; s_t F=p14 p32 p39 p65 p74 p83 p85 p103] +- P0 ~ P4: A={P0,P4,P9,P19} [F=p0 p10 p14 p23 p35 p40 p55 p102; s_t F=p14 p35 p40 p67 p73 p84 p85 p102]; B={P0,P4,P14,P15} [F=p0 p10 p14 p24 p33 p39 p57 p102; s_t F=p14 p24 p57 p67 p73 p78 p94 p102]; C={P9,P14,P15,P19} [F=p14 p23 p55 p64 p74 p78 p94 p102; s_t F=p14 p33 p39 p64 p74 p84 p85 p102] +- P0 ~ P5: A={P0,P5,P13,P16} [F=p0 p6 p18 p24 p32 p41 p52 p103; s_t F=p6 p24 p41 p50 p73 p81 p93 p103]; B={P0,P5,P12,P18} [F=p0 p6 p18 p26 p31 p40 p54 p103; s_t F=p6 p26 p40 p50 p73 p83 p91 p103]; C={P12,P13,P16,P18} [F=p6 p31 p54 p65 p71 p81 p93 p103; s_t F=p6 p32 p52 p65 p71 p83 p91 p103] +- P0 ~ P8: A={P0,P8,P14,P18} [F=p0 p6 p21 p26 p33 p42 p54 p99; s_t F=p6 p26 p42 p46 p73 p83 p94 p99]; B={P0,P8,P13,P19} [F=p0 p6 p21 p27 p32 p41 p55 p99; s_t F=p6 p27 p41 p46 p73 p84 p93 p99]; C={P13,P14,P18,P19} [F=p6 p32 p55 p61 p71 p83 p94 p99; s_t F=p6 p33 p54 p61 p71 p84 p93 p99] +- P0 ~ P9: A={P0,P2,P9,P17} [F=p0 p8 p16 p23 p36 p41 p53 p101; s_t F=p16 p36 p41 p69 p73 p82 p85 p101]; B={P0,P3,P9,P18} [F=p0 p9 p17 p23 p38 p42 p54 p99; s_t F=p17 p38 p42 p68 p73 p83 p85 p99]; C={P2,P3,P17,P18} [F=p8 p13 p14 p40 p45 p53 p68 p83; s_t F=p9 p13 p14 p40 p45 p54 p69 p82] +- P0 ~ P13: A={P0,P5,P13,P16} [F=p0 p6 p18 p24 p32 p41 p52 p103; s_t F=p6 p24 p41 p50 p73 p81 p93 p103]; B={P0,P6,P13,P17} [F=p0 p6 p19 p25 p32 p41 p53 p101; s_t F=p6 p25 p41 p48 p73 p82 p93 p101]; C={P5,P6,P16,P17} [F=p5 p17 p18 p44 p48 p52 p60 p82; s_t F=p5 p17 p19 p44 p50 p53 p60 p81] +- P0 ~ P14: A={P0,P7,P14,P17} [F=p0 p6 p20 p25 p33 p42 p53 p100; s_t F=p6 p25 p42 p47 p73 p82 p94 p100]; B={P0,P8,P14,P18} [F=p0 p6 p21 p26 p33 p42 p54 p99; s_t F=p6 p26 p42 p46 p73 p83 p94 p99]; C={P7,P8,P17,P18} [F=p5 p14 p20 p45 p46 p53 p57 p83; s_t F=p5 p14 p21 p45 p47 p54 p57 p82] +- P0 ~ P15: A={P0,P3,P13,P15} [F=p0 p9 p14 p24 p32 p39 p56 p103; s_t F=p14 p24 p56 p68 p73 p78 p93 p103]; B={P0,P4,P14,P15} [F=p0 p10 p14 p24 p33 p39 p57 p102; s_t F=p14 p24 p57 p67 p73 p78 p94 p102]; C={P3,P4,P13,P14} [F=p9 p32 p60 p67 p71 p80 p94 p99; s_t F=p10 p33 p60 p68 p71 p80 p93 p99] +- P0 ~ P17: A={P0,P6,P13,P17} [F=p0 p6 p19 p25 p32 p41 p53 p101; s_t F=p6 p25 p41 p48 p73 p82 p93 p101]; B={P0,P7,P14,P17} [F=p0 p6 p20 p25 p33 p42 p53 p100; s_t F=p6 p25 p42 p47 p73 p82 p94 p100]; C={P6,P7,P13,P14} [F=p2 p6 p19 p25 p32 p47 p61 p94; s_t F=p2 p6 p20 p25 p33 p48 p61 p93] +- P0 ~ P18: A={P0,P5,P12,P18} [F=p0 p6 p18 p26 p31 p40 p54 p103; s_t F=p6 p26 p40 p50 p73 p83 p91 p103]; B={P0,P8,P14,P18} [F=p0 p6 p21 p26 p33 p42 p54 p99; s_t F=p6 p26 p42 p46 p73 p83 p94 p99]; C={P5,P8,P12,P14} [F=p18 p31 p46 p57 p76 p80 p87 p94; s_t F=p21 p33 p50 p57 p76 p80 p87 p91] +- P0 ~ P19: A={P0,P8,P13,P19} [F=p0 p6 p21 p27 p32 p41 p55 p99; s_t F=p6 p27 p41 p46 p73 p84 p93 p99]; B={P0,P4,P9,P19} [F=p0 p10 p14 p23 p35 p40 p55 p102; s_t F=p14 p35 p40 p67 p73 p84 p85 p102]; C={P4,P8,P9,P13} [F=p2 p10 p15 p23 p37 p46 p63 p93; s_t F=p2 p15 p21 p32 p37 p63 p67 p85] +- P1 ~ P7: A={P1,P5,P7,P9} [F=p1 p5 p18 p20 p80 p85 p100 p103; s_t F=p5 p23 p47 p50 p72 p80 p100 p103]; B={P1,P7,P10,P19} [F=p1 p5 p20 p27 p29 p43 p55 p100; s_t F=p5 p27 p43 p47 p72 p84 p96 p100]; C={P5,P9,P10,P19} [F=p4 p5 p15 p18 p84 p85 p96 p100; s_t F=p4 p5 p15 p23 p29 p50 p55 p100] +- P2 ~ P4: A={P2,P4,P6,P8} [F=p2 p8 p21 p26 p37 p48 p67 p90; s_t F=p2 p10 p19 p26 p37 p46 p69 p90]; B={P2,P4,P17,P19} [F=p8 p37 p53 p67 p71 p84 p90 p100; s_t F=p10 p37 p55 p69 p71 p82 p90 p100]; C={P6,P8,P17,P19} [F=p5 p14 p19 p44 p46 p53 p56 p84; s_t F=p5 p14 p21 p44 p48 p55 p56 p82] +- P4 ~ P6: A={P1,P4,P6,P12} [F=p1 p10 p11 p19 p80 p89 p91 p102; s_t F=p11 p31 p48 p67 p72 p80 p89 p102]; B={P2,P4,P6,P8} [F=p2 p8 p21 p26 p37 p48 p67 p90; s_t F=p2 p10 p19 p26 p37 p46 p69 p90]; C={P1,P2,P8,P12} [F=p1 p8 p21 p26 p37 p45 p64 p91; s_t F=p26 p31 p37 p45 p46 p64 p69 p72] +- P4 ~ P7: A={P3,P4,P6,P7} [F=p2 p9 p20 p25 p38 p48 p67 p90; s_t F=p2 p10 p19 p25 p38 p47 p68 p90]; B={P4,P7,P15,P17} [F=p10 p11 p16 p39 p47 p60 p63 p82; s_t F=p11 p16 p20 p53 p60 p63 p67 p78]; C={P3,P6,P15,P17} [F=p9 p11 p17 p39 p48 p60 p62 p82; s_t F=p11 p17 p19 p53 p60 p62 p68 p78] +- P4 ~ P10: A={P0,P4,P5,P10} [F=p0 p10 p15 p18 p79 p89 p96 p100; s_t F=p15 p29 p50 p67 p73 p79 p89 p100]; B={P4,P10,P12,P18} [F=p3 p10 p11 p15 p83 p89 p91 p96; s_t F=p3 p11 p15 p29 p31 p54 p67 p89]; C={P0,P5,P12,P18} [F=p0 p6 p18 p26 p31 p40 p54 p103; s_t F=p6 p26 p40 p50 p73 p83 p91 p103] +- P4 ~ P12: A={P1,P4,P6,P12} [F=p1 p10 p11 p19 p80 p89 p91 p102; s_t F=p11 p31 p48 p67 p72 p80 p89 p102]; B={P4,P10,P12,P18} [F=p3 p10 p11 p15 p83 p89 p91 p96; s_t F=p3 p11 p15 p29 p31 p54 p67 p89]; C={P1,P6,P10,P18} [F=p1 p5 p19 p26 p29 p43 p54 p101; s_t F=p5 p26 p43 p48 p72 p83 p96 p101] +- P5 ~ P14: A={P1,P2,P5,P14} [F=p1 p8 p13 p18 p80 p87 p94 p100; s_t F=p13 p33 p50 p69 p72 p80 p87 p100]; B={P5,P10,P14,P15} [F=p18 p24 p57 p61 p76 p78 p94 p96; s_t F=p24 p29 p33 p39 p50 p57 p61 p76]; C={P1,P2,P10,P15} [F=p1 p8 p13 p27 p29 p39 p65 p100; s_t F=p13 p27 p65 p69 p72 p78 p96 p100] +- P7 ~ P11: A={P7,P9,P11,P16} [F=p2 p5 p16 p20 p81 p85 p97 p103; s_t F=p2 p5 p16 p23 p30 p47 p52 p103]; B={P7,P8,P10,P11} [F=p2 p5 p20 p27 p29 p46 p57 p97; s_t F=p2 p5 p21 p27 p30 p47 p57 p96]; C={P8,P9,P10,P16} [F=p21 p35 p42 p65 p76 p81 p85 p96; s_t F=p23 p29 p35 p42 p46 p52 p65 p76] +- P11 ~ P16: A={P1,P5,P11,P16} [F=p1 p5 p18 p24 p30 p44 p52 p103; s_t F=p5 p24 p44 p50 p72 p81 p97 p103]; B={P7,P9,P11,P16} [F=p2 p5 p16 p20 p81 p85 p97 p103; s_t F=p2 p5 p16 p23 p30 p47 p52 p103]; C={P1,P5,P7,P9} [F=p1 p5 p18 p20 p80 p85 p100 p103; s_t F=p5 p23 p47 p50 p72 p80 p100 p103] + +Odd closure. Seeds: p23, p78, p21, p91, p54, p72, p94 (their roots and r_t are independent mod 3). + +- p46 = -p21 (antipode) +- p85 = -p23 (antipode) +- p31 = -p91 (antipode) +- p83 = -p54 (antipode) +- p39 = -p78 (antipode) +- p1 = -p72 (antipode) +- p33 = -p94 (antipode) +- p0 from quadruple {p0, p21, p33, p54} +- p7 from quadruple {p0, p7, p31, p39} +- p52 from quadruple {p0, p7, p23, p52} +- p96 from quadruple {p0, p7, p21, p96} +- p9 from quadruple {p0, p9, p23, p54} +- p32 from quadruple {p0, p9, p32, p39} +- p10 from quadruple {p0, p10, p33, p39} +- p18 from quadruple {p0, p10, p18, p96} +- p55 from quadruple {p0, p10, p23, p55} +- p97 from quadruple {p0, p32, p72, p97} +- p98 from quadruple {p0, p33, p72, p98} +- p95 from quadruple {p0, p31, p72, p95} +- p70 from quadruple {p0, p54, p70, p97} +- p53 from quadruple {p0, p53, p70, p96} +- p20 from quadruple {p1, p18, p20, p85} +- p30 from quadruple {p1, p18, p30, p52} +- p19 from quadruple {p1, p19, p30, p53} +- p29 from quadruple {p1, p19, p29, p54} +- p22 from quadruple {p1, p7, p22, p52} +- p93 from quadruple {p1, p7, p20, p93} +- p92 from quadruple {p1, p7, p21, p92} +- p8 from quadruple {p1, p8, p18, p94} +- p73 from quadruple {p1, p22, p73, p85} +- p81 from quadruple {p20, p81, p85, p97} +- p47 from quadruple {p23, p30, p47, p52} +- p48 from quadruple {p22, p33, p48, p52} +- p68 from quadruple {p8, p29, p68, p97} +- p67 from quadruple {p8, p21, p48, p67} +- p69 from quadruple {p9, p30, p69, p96} +- p49 from quadruple {p23, p29, p49, p54} +- p51 from quadruple {p22, p33, p51, p54} +- p84 from quadruple {p19, p84, p85, p95} +- p50 from quadruple {p23, p29, p50, p55} +- p82 from quadruple {p21, p48, p55, p82} + diff --git a/research/p104-carrier-code-uniqueness/e8/ports-d8.md b/research/p104-carrier-code-uniqueness/e8/ports-d8.md new file mode 100644 index 0000000000..21805cd9ad --- /dev/null +++ b/research/p104-carrier-code-uniqueness/e8/ports-d8.md @@ -0,0 +1,120 @@ +# Ports in D8 coordinates (generated by porttable.py) + +Orthonormal D8 axes u_1..u_8 (fixed by d8.py). Mod 3 a root reduces to its coordinate vector with 1/2 = 2. + +| port | q (bits 0..8) | root | +|---|---|---| +| p0 | 110100000 | (1,1,0,0,0,0,0,0) | +| p1 | 110010000 | (1,0,0,1,0,0,0,0) | +| p2 | 110001000 | 1/2(++-++--+) | +| p3 | 110000010 | (1,0,0,0,1,0,0,0) | +| p4 | 110000001 | 1/2(++-+++--) | +| p5 | 101100000 | (0,1,1,0,0,0,0,0) | +| p6 | 101010000 | (0,0,1,1,0,0,0,0) | +| p7 | 101001000 | 1/2(-++++--+) | +| p8 | 101000100 | 1/2(-++++-+-) | +| p9 | 101000010 | (0,0,1,0,1,0,0,0) | +| p10 | 101000001 | 1/2(-+++++--) | +| p11 | 100101000 | (0,1,0,0,0,0,0,1) | +| p12 | 100100100 | (0,1,0,0,0,0,1,0) | +| p13 | 100100001 | (0,1,0,0,0,1,0,0) | +| p14 | 100011000 | (0,0,0,1,0,0,0,1) | +| p15 | 100010100 | (0,0,0,1,0,0,1,0) | +| p16 | 100010010 | 1/2(+-++++++) | +| p17 | 100010001 | (0,0,0,1,0,1,0,0) | +| p18 | 100001010 | (0,0,0,0,1,0,0,1) | +| p19 | 100000110 | (0,0,0,0,1,0,1,0) | +| p20 | 100000101 | 1/2(-+-++++-) | +| p21 | 100000011 | (0,0,0,0,1,1,0,0) | +| p22 | 011100000 | 1/2(+++-----) | +| p23 | 011010000 | 1/2(+-++----) | +| p24 | 011001000 | (0,0,0,0,0,-1,-1,0) | +| p25 | 011000100 | (0,0,0,0,0,-1,0,-1) | +| p26 | 011000010 | 1/2(+-+-+---) | +| p27 | 011000001 | (0,0,0,0,0,0,-1,-1) | +| p28 | 010110000 | (1,0,0,0,-1,0,0,0) | +| p29 | 010100100 | 1/2(++----+-) | +| p30 | 010100010 | (1,0,0,-1,0,0,0,0) | +| p31 | 010011000 | 1/2(+--+---+) | +| p32 | 010010010 | (1,-1,0,0,0,0,0,0) | +| p33 | 010010001 | 1/2(+--+-+--) | +| p34 | 010001100 | (0,0,-1,0,0,-1,0,0) | +| p35 | 010001001 | (0,0,-1,0,0,0,-1,0) | +| p36 | 010000110 | 1/2(+---+-+-) | +| p37 | 010000101 | (0,0,-1,0,0,0,0,-1) | +| p38 | 010000011 | 1/2(+---++--) | +| p39 | 001110000 | (0,0,1,0,-1,0,0,0) | +| p40 | 001101000 | 1/2(-++----+) | +| p41 | 001100010 | (0,0,1,-1,0,0,0,0) | +| p42 | 001100001 | 1/2(-++--+--) | +| p43 | 001010100 | 1/2(--++--+-) | +| p44 | 001010010 | (0,-1,1,0,0,0,0,0) | +| p45 | 001010001 | 1/2(--++-+--) | +| p46 | 001001100 | (-1,0,0,0,0,-1,0,0) | +| p47 | 001001010 | 1/2(--+-+--+) | +| p48 | 001001001 | (-1,0,0,0,0,0,-1,0) | +| p49 | 001000110 | 1/2(--+-+-+-) | +| p50 | 001000101 | (-1,0,0,0,0,0,0,-1) | +| p51 | 001000011 | 1/2(--+-++--) | +| p52 | 000111000 | (0,0,0,0,-1,0,0,1) | +| p53 | 000110100 | (0,0,0,0,-1,0,1,0) | +| p54 | 000110010 | 1/2(+-+--+++) | +| p55 | 000110001 | (0,0,0,0,-1,1,0,0) | +| p56 | 000101010 | (0,0,0,-1,0,0,0,1) | +| p57 | 000101001 | 1/2(-+---+-+) | +| p58 | 000100110 | (0,0,0,-1,0,0,1,0) | +| p59 | 000100101 | 1/2(-+---++-) | +| p60 | 000100011 | (0,0,0,-1,0,1,0,0) | +| p61 | 000011100 | 1/2(---+--++) | +| p62 | 000011010 | (0,-1,0,0,0,0,0,1) | +| p63 | 000011001 | 1/2(---+-+-+) | +| p64 | 000010110 | (0,-1,0,0,0,0,1,0) | +| p65 | 000010101 | 1/2(---+-++-) | +| p66 | 000010011 | (0,-1,0,0,0,1,0,0) | +| p67 | 000001110 | 1/2(----+-++) | +| p68 | 000001101 | (-1,0,-1,0,0,0,0,0) | +| p69 | 000001011 | 1/2(----++-+) | +| p70 | 001111111 | 1/2(-+++++++) | +| p71 | 010111111 | 1/2(++-+++++) | +| p72 | 011011111 | (0,0,0,1,1,0,0,0) | +| p73 | 011101111 | (0,1,0,0,1,0,0,0) | +| p74 | 011110111 | 1/2(+++++++-) | +| p75 | 011111011 | 1/2(++++++-+) | +| p76 | 011111101 | (0,1,0,1,0,0,0,0) | +| p77 | 011111110 | 1/2(+++++-++) | +| p78 | 100111111 | (1,0,-1,0,0,0,0,0) | +| p79 | 101011111 | 1/2(+--++---) | +| p80 | 101101111 | 1/2(++--+---) | +| p81 | 101110111 | (1,0,0,0,0,0,0,-1) | +| p82 | 101111011 | (1,0,0,0,0,0,-1,0) | +| p83 | 101111101 | 1/2(++-+----) | +| p84 | 101111110 | (1,0,0,0,0,-1,0,0) | +| p85 | 110011111 | 1/2(--+++---) | +| p86 | 110110111 | (0,0,1,0,0,0,0,-1) | +| p87 | 110111011 | (0,0,1,0,0,0,-1,0) | +| p88 | 110111101 | 1/2(-+++----) | +| p89 | 110111110 | (0,0,1,0,0,-1,0,0) | +| p90 | 111001111 | (0,1,0,-1,0,0,0,0) | +| p91 | 111010111 | 1/2(+++--++-) | +| p92 | 111011011 | 1/2(+++--+-+) | +| p93 | 111011101 | (0,1,0,0,-1,0,0,0) | +| p94 | 111011110 | 1/2(+++---++) | +| p95 | 111100111 | 1/2(+-++-++-) | +| p96 | 111101011 | 1/2(+-++-+-+) | +| p97 | 111101101 | (0,0,0,1,-1,0,0,0) | +| p98 | 111101110 | 1/2(+-++--++) | +| p99 | 111110011 | (0,0,0,0,0,0,-1,1) | +| p100 | 111110101 | 1/2(-+-+---+) | +| p101 | 111110110 | (0,0,0,0,0,-1,0,1) | +| p102 | 111111001 | 1/2(-+-+--+-) | +| p103 | 111111010 | (0,0,0,0,0,-1,1,0) | + +Missing lines (16, all half-spin): 1/2(+++++---), 1/2(++++-+++), 1/2(++-----+), 1/2(--++---+), 1/2(++-++-+-), 1/2(-++---+-), 1/2(+--+--+-), 1/2(-+-++-++), 1/2(-+----++), 1/2(+-+-+-++), 1/2(+++-++++), 1/2(+---+--+), 1/2(++---+--), 1/2(-+-+++-+), 1/2(----+++-), 1/2(-++-+---) + +Symmetry generators (signed permutations of the axes; each maps the 16 missing lines to themselves up to sign, hence ports to ports and frames to frames). Coordinate i moves to position p[i], then the listed axes change sign: + +- p = [7, 5, 1, 2, 6, 3, 0, 4], sign flips on axes [0, 1, 2, 3, 4, 6] +- p = [4, 7, 2, 3, 5, 0, 1, 6], sign flips on axes [2, 3, 5, 7] +- p = [2, 3, 0, 6, 4, 5, 7, 1], sign flips on axes [1, 2] + +They generate a group of order 384 on lines with three orbits on ports, of sizes 32, 48, 24, represented by p0, p22, p28. diff --git a/research/p104-carrier-code-uniqueness/e8/ports.json b/research/p104-carrier-code-uniqueness/e8/ports.json new file mode 100644 index 0000000000..b964c3ae2e --- /dev/null +++ b/research/p104-carrier-code-uniqueness/e8/ports.json @@ -0,0 +1 @@ +[11, 19, 35, 131, 259, 13, 21, 37, 69, 133, 261, 41, 73, 265, 49, 81, 145, 273, 161, 193, 321, 385, 14, 22, 38, 70, 134, 262, 26, 74, 138, 50, 146, 274, 98, 290, 194, 322, 386, 28, 44, 140, 268, 84, 148, 276, 100, 164, 292, 196, 324, 388, 56, 88, 152, 280, 168, 296, 200, 328, 392, 112, 176, 304, 208, 336, 400, 224, 352, 416, 508, 506, 502, 494, 478, 446, 382, 254, 505, 501, 493, 477, 445, 381, 253, 499, 475, 443, 379, 251, 487, 471, 439, 375, 247, 463, 431, 367, 239, 415, 351, 223, 319, 191] \ No newline at end of file diff --git a/research/p104-carrier-code-uniqueness/e8/verify_e8hand.py b/research/p104-carrier-code-uniqueness/e8/verify_e8hand.py new file mode 100644 index 0000000000..39367f2638 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/e8/verify_e8hand.py @@ -0,0 +1,160 @@ +"""Self-contained verification of the finite facts used in the E8 hand proof of uniqueness of the length-8 +P104 decoding code (see E8-PROOF.md). Standard library only; exact arithmetic. Apache-2.0. +V1 the 104 ports contain exactly one D8 subsystem; there are 759 frames (8 pairwise orthogonal ports). +V2 for every port t, the frame equations sum_{x in F, x non-orth t} g(x) = c (F a frame not containing t) have + rank 41 on the 48 unknowns, and the 7-dim family g(x) = (r_x.r_t)(r_x.v), v in r_t^perp (mod 3), solves the + homogeneous system: so the homogeneous solutions are exactly that family. +V3 for every port t, r_t and the roots r_x of the ports x for which the third line of the A2 through t, x is a port + span F_3^8. +V4 (independent cross-check of steps 3-4) the symmetric system has only the solution N = 1 on non-orth pairs. +V5 sign-step availability in the D8 matching frame T.""" +import itertools, sys, time +from fractions import Fraction as Q +T0 = time.time() +def log(*a): print('[%6.1fs]' % (time.time() - T0), *a, flush=True) +log('START verify_e8hand') +P = [11, 19, 35, 131, 259, 13, 21, 37, 69, 133, 261, 41, 73, 265, 49, 81, 145, 273, 161, 193, 321, 385, 14, 22, 38, 70, 134, 262, 26, 74, 138, 50, 146, 274, 98, 290, 194, 322, 386, 28, 44, 140, 268, 84, 148, 276, 100, 164, 292, 196, 324, 388, 56, 88, 152, 280, 168, 296, 200, 328, 392, 112, 176, 304, 208, 336, 400, 224, 352, 416, 508, 506, 502, 494, 478, 446, 382, 254, 505, 501, 493, 477, 445, 381, 253, 499, 475, 443, 379, 251, 487, 471, 439, 375, 247, 463, 431, 367, 239, 415, 351, 223, 319, 191] +LINES = [q for q in range(512) if bin(q).count('1') in (3, 7)] +def root(q): + c = [(q >> k) & 1 for k in range(9)] + if sum(c) == 7: + i, j = [k for k in range(9) if not c[k]]; r = [Q(0)] * 9; r[i] = Q(1); r[j] = Q(-1); return tuple(r) + return tuple(Q(2, 3) if c[k] else Q(-1, 3) for k in range(9)) +R = {q: root(q) for q in LINES} +def ip(a, b): return sum(x * y for x, y in zip(R[a], R[b])) +PS = set(P) +assert len(P) == 104 and PS <= set(LINES) +assert all((ip(a, b) == 0) == (bin(a & b).count('1') % 2 == 1) for a in P for b in P if a != b), 'conflict = orthogonality' +def frames(pool): + out = [] + def rec(cur, cand): + if len(cur) == 8: out.append(tuple(cur)); return + for i, q in enumerate(cand): rec(cur + [q], [x for x in cand[i + 1:] if ip(q, x) == 0]) + rec([], list(pool)); return out +FR = frames(P); log('V1 frames', len(FR)); assert len(FR) == 759 +# ---- D8: find it via a frame and a partition of its 8 lines into 4 pairs whose unions are blocks +def frame_view(T): + v = {} + for q in LINES: + if q in T: continue + c = [ip(q, t) for t in T]; B = tuple(i for i in range(8) if c[i] != 0); assert len(B) == 4 + v[q] = B + return v +def parts(rest): + if not rest: yield []; return + a = rest[0] + for b in rest[1:]: + for p in parts([x for x in rest if x not in (a, b)]): yield [(a, b)] + p +D8s = set(); D8T = None +for T in FR: + v = frame_view(T); blocks = {} + for q, B in v.items(): blocks.setdefault(B, []).append(q) + for pt in parts(list(range(8))): + if all(tuple(sorted(p + q)) in blocks for p, q in itertools.combinations(pt, 2)): + L = set(T) + for p, q in itertools.combinations(pt, 2): L |= set(blocks[tuple(sorted(p + q))]) + if L <= PS: D8s.add(frozenset(L)); D8T = D8T or (T, pt) +log('V1 D8 subsystems inside the ports', len(D8s)); assert len(D8s) == 1 +D8 = next(iter(D8s)) +# orthonormal D8 axes u_1..u_8: vectors (r_x +- r_y)/2 of orthogonal D8 pairs occurring 7 times +cnt = {} +for x, y in itertools.combinations(sorted(D8), 2): + if ip(x, y) == 0: + for sg in (1, -1): + w = tuple((a + sg * b) / 2 for a, b in zip(R[x], R[y])) + if w[next(i for i in range(9) if w[i] != 0)] < 0: w = tuple(-c for c in w) + cnt[w] = cnt.get(w, 0) + 1 +U = [w for w, c in cnt.items() if c == 7]; assert len(U) == 8 +def dotv(a, b): return sum(x * y for x, y in zip(a, b)) +assert all(dotv(U[i], U[j]) == (1 if i == j else 0) for i in range(8) for j in range(8)) +def coords(q): return [dotv(R[q], u) for u in U] +def red(q): # E8 (x) Z_(3) = Z_(3)^8 in D8 coordinates; 1/2 = 2 mod 3 + return tuple(int(c * 2) * 2 % 3 if c.denominator == 2 else int(c) % 3 for c in coords(q)) +RD = {q: red(q) for q in LINES} +def d3(a, b): return sum(x * y for x, y in zip(a, b)) % 3 +assert all((d3(RD[a], RD[b]) == 0) == (ip(a, b) == 0) for a in LINES for b in LINES if a != b) +assert all(d3(RD[q], RD[q]) == 2 for q in LINES) +miss = sorted(q for q in LINES if q not in PS) +def sv(q): + s = ['+' if c > 0 else '-' for c in coords(q)] + return ''.join(s) if s[0] == '+' else ''.join('-' if c == '+' else '+' for c in s) +log('V1 missing lines (all half-spin, sign vectors in D8 axes):', sorted(sv(q) for q in miss)) +assert not (set(miss) & D8) +def rref(rows, n): + rows = [list(r) for r in rows]; k = 0; piv = [] + for c in range(n): + p = next((i for i in range(k, len(rows)) if rows[i][c] % 3), None) + if p is None: continue + rows[k], rows[p] = rows[p], rows[k]; inv = rows[k][c] % 3 + rows[k] = [(x * inv) % 3 for x in rows[k]] + for i in range(len(rows)): + if i != k and rows[i][c] % 3: + f = rows[i][c]; rows[i] = [(x - f * y) % 3 for x, y in zip(rows[i], rows[k])] + piv.append(c); k += 1 + return rows[:k], piv +def third(t, x): + s = 1 if ip(t, x) > 0 else -1 + v = tuple(a - s * b for a, b in zip(R[t], R[x])) + return next(q for q in LINES if R[q] == v or R[q] == tuple(-c for c in v)) +KER = {}; NB = {}; ok2 = ok3 = True +for t in P: + N = [x for x in P if x != t and ip(t, x) != 0]; idx = {x: i for i, x in enumerate(N)}; NB[t] = idx + rows = [] + for F in FR: + if t in F: continue + r = [0] * 48 + for x in F: + if x in idx: r[idx[x]] = 1 + assert sum(r) == 4; rows.append(r) + red_, piv = rref(rows, 48) + # family: basis of r_t^perp mod 3, g_v(x) = (r_x.r_t)(r_x.v) + perp = [v for v in itertools.product(range(3), repeat=8) if d3(v, RD[t]) == 0] + fam = [] + for v in perp: + g = [d3(RD[x], RD[t]) * d3(RD[x], v) % 3 for x in N] + if rref(fam + [g], 48)[1].__len__() > len(fam): fam.append(g) + if len(fam) == 7: break + sol = all(sum(a * b for a, b in zip(r, g)) % 3 == 0 for r in rows for g in fam) + good = len(piv) == 41 and len(fam) == 7 and sol + ok2 &= good + A2 = [x for x in N if third(t, x) in PS] + rk3 = len(rref([RD[t]] + [RD[x] for x in A2], 8)[1]); ok3 &= rk3 == 8 + # store kernel basis for V4 + free = [c for c in range(48) if c not in piv]; K = [] + for f in free: + v = [0] * 48; v[f] = 1 + for r, c in zip(red_, piv): v[c] = (-r[f]) % 3 + K.append(v) + KER[t] = K + log('t=%d frames-not-containing-t %d rank %d family-dim %d family-solves %s | A2-completable %d span %d' + % (t, len(rows), len(piv), len(fam), sol, len(A2), rk3)) +log('V2 per-port linear lemma holds for all 104 ports:', ok2); log('V3 A2 span holds for all 104 ports:', ok3) +var = {} +for t in P: + for k in range(7): var[t, k] = len(var) +eqs = [] +for t in P: + for x in NB[t]: + if x < t: continue + r = [0] * len(var) + for k, v in enumerate(KER[t]): r[var[t, k]] = (r[var[t, k]] + v[NB[t][x]]) % 3 + for k, v in enumerate(KER[x]): r[var[x, k]] = (r[var[x, k]] - v[NB[x][t]]) % 3 + eqs.append(r) +rk4 = len(rref(eqs, len(var))[1]); log('V4 symmetric system unknowns', len(var), 'rank', rk4, 'only N=1:', rk4 == len(var)) +# V5: in the D8 matching frame T every block has >= 1 ports, and for every pair {a,b} of T, every block through it +# and every sign sigma there is a port with sigma_ab = sigma +T, pt = D8T; v = frame_view(T); ok5 = True +for B in set(v.values()): + ok5 &= sum(1 for q, b in v.items() if b == B and q in PS) >= 1 +for a, b in itertools.combinations(range(8), 2): + for B in set(v.values()): + if a in B and b in B: + sig = set() + for q, bb in v.items(): + if bb == B and q in PS: + sig.add((ip(q, T[a]) * ip(q, T[b])) > 0) + ok5 &= sig == {True, False} +log('V5 sign-step availability in the D8 frame:', ok5) +ALL = ok2 and ok3 and rk4 == len(var) and ok5 +log('RESULT', 'PASS' if ALL else 'FAIL') +sys.exit(0 if ALL else 1) diff --git a/research/p104-carrier-code-uniqueness/gen8.py b/research/p104-carrier-code-uniqueness/gen8.py new file mode 100644 index 0000000000..9dd25b00ff --- /dev/null +++ b/research/p104-carrier-code-uniqueness/gen8.py @@ -0,0 +1,35 @@ +"""Generate the search certificate (pre-order tree) for one part of the root options. Apache-2.0. +usage: gen8.py PORTS.json PART NPARTS OUT [MAXDEPTH] +Tokens (one per line): 'n j' internal node branching on port j; 'd j' dead node (port j has no consistent canonical +option); 's' complete solution; 'x' (only with MAXDEPTH, for smoke tests) node cut at depth MAXDEPTH.""" +import json, sys, time +from code8 import Model +ports = json.load(open(sys.argv[1])); PART, NP = int(sys.argv[2]), int(sys.argv[3]); OUT = open(sys.argv[4], 'w') +MAXD = int(sys.argv[5]) if len(sys.argv) > 5 else 10**9 +M = Model(ports); t0 = time.time(); last = [t0]; cnt = [0, 0, 0]; maxdepth = [0] +print('START part', PART, 'of', NP, 'variables', M.NV, flush=True) +# wrap apply/undo with explicit marks +def rec2(d, rest, cls): + if time.time() - last[0] > 60: + last[0] = time.time() + print('progress %.0fs nodes %d dead %d solutions %d maxdepth %d' % (time.time() - t0, cnt[0], cnt[1], cnt[2], maxdepth[0]), flush=True); OUT.flush() + maxdepth[0] = max(maxdepth[0], d) + if not rest: + OUT.write('s\n'); cnt[2] += 1; M.solution() + print('SOLUTION at %.0fs' % (time.time() - t0), flush=True); return + if d >= MAXD: + OUT.write('x\n'); return + j, opts = M.choose(rest, cls) + if not opts: + OUT.write('d %d\n' % j); cnt[1] += 1; return + OUT.write('n %d\n' % j); cnt[0] += 1 + if d == 0: + opts = [c for i, c in enumerate(opts) if i % NP == PART] + print('root port', j, 'options in this part', len(opts), flush=True) + for c in opts: + mk = M.mark(); assert M.apply(j, c) + rec2(d + 1, rest - {j}, M.merged(j, c, cls)) + M.undo(mk) +rec2(0, frozenset(M.others), {t: i for i, t in enumerate(M.T)}) +OUT.close() +print('DONE part %d of %d internal %d dead %d solutions %d maxdepth %d time %.0fs' % (PART, NP, cnt[0], cnt[1], cnt[2], maxdepth[0], time.time() - t0), flush=True) diff --git a/research/p104-carrier-code-uniqueness/lean/.gitignore b/research/p104-carrier-code-uniqueness/lean/.gitignore new file mode 100644 index 0000000000..01f8cdb637 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/.gitignore @@ -0,0 +1 @@ +.lake/ diff --git a/research/p104-carrier-code-uniqueness/lean/Audit.lean b/research/p104-carrier-code-uniqueness/lean/Audit.lean new file mode 100644 index 0000000000..f51231a2ee --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/Audit.lean @@ -0,0 +1,16 @@ +import CarrierCode + +#print axioms CarrierCode.State.step_row +#print axioms CarrierCode.State.inv_init +#print axioms CarrierCode.State.inv_run +#print axioms CarrierCode.State.decoding_vector +#print axioms CarrierCode.finrank_add_orth +#print axioms CarrierCode.root_dim +#print axioms CarrierCode.landing_dim +#print axioms CarrierCode.chain_cost +#print axioms CarrierCode.span_of_clique +#print axioms CarrierCode.carriers_cost +#print axioms CarrierCode.State.step_map +#print axioms CarrierCode.State.run_map +#print axioms CarrierCode.State.legalRun_map +#print axioms CarrierCode.State.row_map diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode.lean new file mode 100644 index 0000000000..5931234c55 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode.lean @@ -0,0 +1,2 @@ +import CarrierCode.Word +import CarrierCode.Cost diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/Cost.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/Cost.lean new file mode 100644 index 0000000000..29b52ea10e --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/Cost.lean @@ -0,0 +1,163 @@ +import CarrierCode.Word + +/-! +# Decoding codes and the scoped carrier cost floor (Lemma 4 consequences and Corollary 5 of PROOF.md) + +The finite search of the package is used only through `CodeFact`: every 8-dimensional decoding code over `K` on the +ports has minimum weight at least 49, in rows (vectors of the code) and in columns (any linear functional evaluated +on the decoding vectors). It is established by the certificate replay in `verify.py`, not here. The frame capacity +`Capacity` (at most 36 ports in a subspace of dimension at most 7) is checked by enumeration in `verify.py`. +-/ + +namespace CarrierCode + +open Module + +attribute [local instance] Classical.propDecidable + +variable {K : Type*} [Field K] {L : Type*} [Fintype L] (port : L → V9) + +/-- `W` is a decoding code with decoding vectors `w`. -/ +def IsDecoding (W : Submodule K (L → K)) (w : L → L → K) : Prop := + ∀ ℓ, w ℓ ∈ W ∧ w ℓ ℓ = 1 ∧ ∀ m, m ≠ ℓ → Conflict (port m) (port ℓ) → w ℓ m = 0 + +/-- The statement certified by the search (Theorem 3 with the weight facts of `verify.py`). -/ +def CodeFact (K : Type*) [Field K] : Prop := + ∀ (W : Submodule K (L → K)) (w : L → L → K), IsDecoding port W w → finrank K W = 8 → + (∀ v ∈ W, v ≠ 0 → 49 ≤ (Finset.univ.filter fun m => v m ≠ 0).card) ∧ + (∀ φ : (L → K) →ₗ[K] K, (∃ ℓ, φ (w ℓ) ≠ 0) → 49 ≤ (Finset.univ.filter fun ℓ => φ (w ℓ) ≠ 0).card) + +/-- Lemma 4 as used: at most 36 ports in a subspace of dimension at most 7 (checked in `verify.py`). -/ +def Capacity : Prop := + ∀ S : Frame, finrank (ZMod 2) S ≤ 7 → (Finset.univ.filter fun m => port m ∈ S).card ≤ 36 + +/-- A frame holding at least 49 ports has dimension at least 8. -/ +theorem root_dim (hcap : Capacity port) (F : Frame) (s : Finset L) (hs : 49 ≤ s.card) + (hF : ∀ m ∈ s, port m ∈ F) : 8 ≤ finrank (ZMod 2) F := by + by_contra h + have h1 := hcap F (by omega) + have : s ⊆ Finset.univ.filter fun m => port m ∈ F := fun m hm => by simp [hF m hm] + have := Finset.card_le_card this + omega + +/-- The dot-product form on `F₂⁹`. -/ +def dotForm : LinearMap.BilinForm (ZMod 2) V9 := Matrix.toBilin' 1 + +theorem dotForm_apply (x y : V9) : dotForm x y = x ⬝ᵥ y := by + simp [dotForm, Matrix.toBilin'_apply', dotProduct] + +/-- `dim B + dim B^⊥ = 9` for the dot product on `F₂⁹`. -/ +theorem finrank_add_orth (B : Frame) : + finrank (ZMod 2) B + finrank (ZMod 2) (dotForm.orthogonal B) = 9 := by + have h := dotForm.finrank_add_finrank_orthogonal' B + have hker : LinearMap.ker dotForm = ⊥ := by + rw [eq_bot_iff] + intro x hx + rw [Submodule.mem_bot] + funext i + have := congrArg (fun f => f (Pi.single i 1)) (LinearMap.mem_ker.mp hx) + simp only [dotForm_apply, LinearMap.zero_apply] at this + simpa [dotProduct_single] using this + rw [show (dotForm.ker : Submodule (ZMod 2) V9) = LinearMap.ker dotForm from rfl, hker, inf_bot_eq, + finrank_bot, add_zero, Module.finrank_fin_fun] at h + exact h + +/-- A frame orthogonal to at least 49 ports has dimension at most 1. -/ +theorem landing_dim (hcap : Capacity port) (B : Frame) (s : Finset L) (hs : 49 ≤ s.card) + (hB : ∀ ℓ ∈ s, ∀ b ∈ B, b ⬝ᵥ port ℓ = 0) : finrank (ZMod 2) B ≤ 1 := by + have hperp : ∀ ℓ ∈ s, port ℓ ∈ dotForm.orthogonal B := by + intro ℓ hℓ + rw [LinearMap.BilinForm.mem_orthogonal_iff] + intro b hb + rw [dotForm_apply] + exact hB ℓ hℓ b hb + have h8 := root_dim port hcap _ s hs hperp + have := finrank_add_orth B + omega + +/-- Corollary 5, one chain. A delivered vector `v` of a code with `CodeFact` has at least 49 live coordinates, so a +root frame holding their ports has dimension at least 8; at least 49 receivers in frames inside `q_ℓ^⊥` force the +lowest frame `B` of the chain to dimension at most 1; the chain's paid descent is at least 7. -/ +theorem chain_cost (hcap : Capacity port) (W : Submodule K (L → K)) (w : L → L → K) + (hfact : (∀ v ∈ W, v ≠ 0 → 49 ≤ (Finset.univ.filter fun m => v m ≠ 0).card) ∧ + (∀ φ : (L → K) →ₗ[K] K, (∃ ℓ, φ (w ℓ) ≠ 0) → 49 ≤ (Finset.univ.filter fun ℓ => φ (w ℓ) ≠ 0).card)) + (v : L → K) (hvW : v ∈ W) (hv : v ≠ 0) (φ : (L → K) →ₗ[K] K) (hφ : ∃ ℓ, φ (w ℓ) ≠ 0) + (root B : Frame) (hroot : ∀ m, v m ≠ 0 → port m ∈ root) + (hrecv : ∀ ℓ, φ (w ℓ) ≠ 0 → ∀ b ∈ B, b ⬝ᵥ port ℓ = 0) : + 7 ≤ finrank (ZMod 2) root - finrank (ZMod 2) B := by + have h1 := root_dim port hcap root _ (hfact.1 v hvW hv) (fun m hm => hroot m (by simpa using hm)) + have h2 := landing_dim port hcap B _ (hfact.2 φ hφ) (fun ℓ hℓ => hrecv ℓ (by simpa using hℓ)) + omega + +/-- With a conflict clique of size 8, the decoding vectors of an 8-dimensional decoding code span it. -/ +theorem span_of_clique (W : Submodule K (L → K)) (w : L → L → K) (hW : IsDecoding port W w) + (h8 : finrank K W = 8) (T : Fin 8 → L) (hT : Function.Injective T) + (hcl : ∀ i j, i ≠ j → Conflict (port (T i)) (port (T j))) : + Submodule.span K (Set.range w) = W := by + have hle : Submodule.span K (Set.range w) ≤ W := + Submodule.span_le.mpr (by rintro _ ⟨ℓ, rfl⟩; exact (hW ℓ).1) + have hli : LinearIndependent K (fun i => w (T i)) := by + rw [Fintype.linearIndependent_iff] + intro g hg j + have := congrFun hg (T j) + simp only [Finset.sum_apply, Pi.smul_apply, smul_eq_mul, Pi.zero_apply] at this + rw [Finset.sum_eq_single j] at this + · simpa [(hW (T j)).2.1] using this + · intro i _ hij + rw [(hW (T i)).2.2 (T j) (fun h => hij (hT h).symm) (hcl j i (Ne.symm hij)), mul_zero] + · simp + have h8' : 8 ≤ finrank K (Submodule.span K (Set.range w)) := by + have h1 := finrank_span_eq_card hli + have h2 : Submodule.span K (Set.range fun i => w (T i)) ≤ Submodule.span K (Set.range w) := + Submodule.span_mono (by rintro _ ⟨i, rfl⟩; exact ⟨T i, rfl⟩) + have := Submodule.finrank_mono h2 + simp only [Fintype.card_fin] at h1 + omega + exact Submodule.eq_of_le_of_finrank_eq hle (le_antisymm (Submodule.finrank_mono hle) (by omega)) + +/-- Corollary 5. Let `W` be an 8-dimensional decoding code with decoding vectors `w`, under `CodeFact` and +`Capacity`, and let `v : Fin 8 → (L → K)` be a basis of `W`. Suppose chain `c` carries `v c` down from a root frame +holding the ports of its support to a lowest frame `B c` that lies in `q_ℓ^⊥` for every partner `ℓ` whose decoding +vector uses `v c` (nonzero coordinate). Then every chain pays at least 7, and the eight chains at least 56. -/ +theorem carriers_cost (hcode : CodeFact port K) (hcap : Capacity port) (W : Submodule K (L → K)) (w : L → L → K) + (hW : IsDecoding port W w) (h8 : finrank K W = 8) (hspan : Submodule.span K (Set.range w) = W) + (v : Basis (Fin 8) K W) + (root B : Fin 8 → Frame) (hroot : ∀ c m, (v c : L → K) m ≠ 0 → port m ∈ root c) + (hrecv : ∀ c ℓ, v.repr ⟨w ℓ, (hW ℓ).1⟩ c ≠ 0 → ∀ b ∈ B c, b ⬝ᵥ port ℓ = 0) : + (∀ c, 7 ≤ finrank (ZMod 2) (root c) - finrank (ZMod 2) (B c)) ∧ + 56 ≤ ∑ c, (finrank (ZMod 2) (root c) - finrank (ZMod 2) (B c)) := by + have hfact := hcode W w hW h8 + have each : ∀ c, 7 ≤ finrank (ZMod 2) (root c) - finrank (ZMod 2) (B c) := by + intro c + -- the coordinate functional of `v c`, extended from `W` to the ambient space + obtain ⟨φ, hφ⟩ := LinearMap.exists_extend (v.coord c) + have hφw : ∀ ℓ, φ (w ℓ) = v.repr ⟨w ℓ, (hW ℓ).1⟩ c := by + intro ℓ + have := congrArg (fun f => f ⟨w ℓ, (hW ℓ).1⟩) hφ + simpa using this + have hvc : (v c : L → K) ≠ 0 := by + intro h0 + exact v.ne_zero c (Subtype.ext (by simpa using h0)) + have hex : ∃ ℓ, φ (w ℓ) ≠ 0 := by + by_contra hno + push Not at hno + have hzero : ∀ x ∈ W, φ x = 0 := by + intro x hx + rw [← hspan] at hx + induction hx using Submodule.span_induction with + | mem y hy => obtain ⟨ℓ, rfl⟩ := hy; exact hno ℓ + | zero => simp + | add a b _ _ ha hb => simp [ha, hb] + | smul a b _ hb => simp [hb] + have h1 : φ (v c) = 1 := by + have := congrArg (fun f => f (v c)) hφ + simpa using this + rw [hzero _ (v c).2] at h1 + exact zero_ne_one h1 + exact chain_cost port hcap W w hfact (v c) (v c).2 hvc φ hex (root c) (B c) (hroot c) + (fun ℓ hℓ => hrecv c ℓ (by rwa [← hφw])) + refine ⟨each, ?_⟩ + calc 56 = ∑ _c : Fin 8, 7 := by simp + _ ≤ _ := Finset.sum_le_sum fun c _ => each c + +end CarrierCode diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8.lean new file mode 100644 index 0000000000..e56d201d9c --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8.lean @@ -0,0 +1,68 @@ +import Mathlib + +/-! +# Search-free uniqueness of the length-8 decoding code: the general steps (E8-PROOF.md) + +This file proves the steps of the E8 argument that do not depend on the concrete port data. + +* `frame_factor` (step 1): if `M = A * B` with inner dimension 8 and `M` is the identity on a frame `f`, then + `M = M[:, f] * M[f, :]`. +* `frame_sum` (step 2): consequently the diagonal entry gives `∑_{x ∈ f} M t x * M x t = M t t`. +* `a2_trick` (step 4): in characteristic 3, symmetry along an A2 triangle forces `r_x ⬝ v_t = 0`. +* `coboundary` (step 5): a ±1 function on pairs of `Fin n` with trivial triangle products is a coboundary. +-/ + +namespace CarrierCode.E8 + +open Matrix + +variable {K : Type*} [Field K] {L : Type*} + +/-- Step 1. A rank-8 factorisation that is the identity on a frame factors through that frame. -/ +theorem frame_factor (A : Matrix L (Fin 8) K) (B : Matrix (Fin 8) L K) (f : Fin 8 → L) + (hf : (A * B).submatrix f f = 1) : + A * B = (A * B).submatrix id f * (A * B).submatrix f id := by + have h1 : A.submatrix f id * B.submatrix id f = 1 := by + rw [← hf]; ext i j; simp [Matrix.mul_apply] + have h2 : B.submatrix id f * A.submatrix f id = 1 := mul_eq_one_comm.mp h1 + have e1 : (A * B).submatrix id f = A * B.submatrix id f := by ext i j; simp [Matrix.mul_apply] + have e2 : (A * B).submatrix f id = A.submatrix f id * B := by ext i j; simp [Matrix.mul_apply] + rw [e1, e2, Matrix.mul_assoc, ← Matrix.mul_assoc (B.submatrix id f), h2, Matrix.one_mul] + +/-- Step 2. The frame sums of `N t x = M t x * M x t`. -/ +theorem frame_sum (A : Matrix L (Fin 8) K) (B : Matrix (Fin 8) L K) (f : Fin 8 → L) + (hf : (A * B).submatrix f f = 1) (t : L) : + ∑ k, (A * B) t (f k) * (A * B) (f k) t = (A * B) t t := by + conv_rhs => rw [frame_factor A B f hf] + simp [Matrix.mul_apply] + +/-- Step 4. The A2 trick: `r_y = r_t - r_x`, each `v_a ⟂ r_a`, and the symmetry relations along the triangle force +`r_x ⬝ v_t = 0` in characteristic 3. -/ +theorem a2_trick {n : Type*} [Fintype n] (rt rx ry vt vx vy : n → ZMod 3) (hy : ry = rt - rx) + (ht : rt ⬝ᵥ vt = 0) (hx : rx ⬝ᵥ vx = 0) (hyy : ry ⬝ᵥ vy = 0) + (stx : rx ⬝ᵥ vt = rt ⬝ᵥ vx) (sty : ry ⬝ᵥ vt = rt ⬝ᵥ vy) (sxy : rx ⬝ᵥ vy = ry ⬝ᵥ vx) : + rx ⬝ᵥ vt = 0 := by + subst hy + have a : (rt - rx) ⬝ᵥ vt = -(rx ⬝ᵥ vt) := by rw [sub_dotProduct, ht, zero_sub] + have b : rt ⬝ᵥ vy = rx ⬝ᵥ vy := by + have : rt = (rt - rx) + rx := by abel + rw [this, add_dotProduct, hyy, zero_add] + have c : (rt - rx) ⬝ᵥ vx = rt ⬝ᵥ vx := by rw [sub_dotProduct, hx, sub_zero] + have key : -(rx ⬝ᵥ vt) = rx ⬝ᵥ vt := by rw [← a, sty, b, sxy, c, ← stx] + have h2 : (2 : ZMod 3) * (rx ⬝ᵥ vt) = 0 := by linear_combination -key + have h2' : (2 : ZMod 3) ≠ 0 := by decide + exact (mul_eq_zero.mp h2).resolve_left h2' + +/-- Step 5. On a complete graph, a sign function with trivial triangle products is a coboundary. -/ +theorem coboundary {n : ℕ} (ρ : Fin (n + 1) → Fin (n + 1) → ℤˣ) (hsym : ∀ a b, ρ a b = ρ b a) + (htri : ∀ a b c, ρ a b * ρ b c * ρ c a = 1) : + ∃ d : Fin (n + 1) → ℤˣ, ∀ a b, ρ a b = d a * d b := by + refine ⟨fun a => ρ 0 a, fun a b => ?_⟩ + have hu : ∀ u : ℤˣ, u * u = 1 := fun u => Int.units_mul_self u + have h := htri 0 a b + rw [hsym b 0] at h + calc ρ a b = (ρ 0 a * ρ 0 a) * ρ a b * (ρ 0 b * ρ 0 b) := by rw [hu, hu, one_mul, mul_one] + _ = ρ 0 a * (ρ 0 a * ρ a b * ρ 0 b) * ρ 0 b := by group + _ = ρ 0 a * ρ 0 b := by rw [h, mul_one] + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Cert.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Cert.lean new file mode 100644 index 0000000000..7cb0f29e32 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Cert.lean @@ -0,0 +1,427 @@ +/-! Generated by Matarener/Internal local-topology-2026-10-27/e8hand/gen_lean_cert.py: step-3 certificates. -/ + +namespace CarrierCode.E8 + +def seedData : List (List Nat) := [ + [84, 85, 90, 91, 92, 93, 94], + [78, 84, 90, 95, 96, 97, 98], + [84, 86, 91, 95, 99, 100, 101], + [82, 84, 88, 93, 97, 100, 102], + [82, 83, 89, 94, 98, 101, 103], + [79, 89, 90, 91, 92, 93, 94], + [80, 89, 90, 95, 96, 97, 98], + [81, 89, 91, 95, 99, 100, 101], + [82, 89, 92, 96, 99, 102, 103], + [83, 87, 89, 93, 97, 100, 102], + [84, 87, 88, 94, 98, 101, 103], + [81, 86, 94, 95, 99, 100, 101], + [82, 87, 94, 96, 99, 102, 103], + [84, 89, 92, 93, 98, 101, 103], + [81, 86, 91, 98, 99, 100, 101], + [82, 87, 92, 98, 99, 102, 103], + [83, 88, 93, 96, 98, 100, 102], + [84, 89, 94, 96, 97, 101, 103], + [83, 88, 93, 97, 99, 101, 102], + [83, 88, 93, 97, 99, 100, 103], + [84, 89, 94, 98, 99, 101, 102], + [84, 89, 94, 98, 101, 102, 103], + [84, 89, 90, 91, 92, 93, 94], + [84, 89, 90, 95, 96, 97, 98], + [84, 89, 91, 95, 99, 100, 101], + [84, 89, 92, 96, 99, 102, 103], + [84, 87, 89, 93, 97, 100, 102], + [83, 87, 88, 94, 98, 101, 103], + [84, 85, 94, 95, 96, 97, 98], + [84, 87, 94, 96, 99, 102, 103], + [84, 88, 92, 94, 97, 100, 102], + [84, 86, 91, 98, 99, 100, 101], + [84, 88, 93, 96, 98, 100, 102], + [83, 89, 94, 96, 97, 101, 103], + [84, 87, 92, 96, 101, 102, 103], + [83, 89, 94, 98, 99, 100, 103], + [84, 88, 93, 97, 99, 100, 103], + [83, 89, 94, 98, 99, 101, 102], + [82, 89, 94, 98, 101, 102, 103], + [80, 89, 94, 95, 96, 97, 98], + [81, 89, 94, 95, 99, 100, 101], + [83, 89, 92, 94, 97, 100, 102], + [84, 88, 92, 93, 98, 101, 103], + [82, 89, 92, 98, 99, 102, 103], + [83, 89, 93, 96, 98, 100, 102], + [84, 88, 94, 96, 97, 101, 103], + [82, 89, 92, 96, 101, 102, 103], + [83, 89, 93, 97, 99, 101, 102], + [84, 88, 94, 98, 99, 100, 103], + [83, 89, 93, 97, 99, 100, 103], + [84, 88, 94, 98, 99, 101, 102], + [84, 87, 94, 98, 101, 102, 103], + [81, 86, 94, 98, 99, 100, 101], + [82, 87, 94, 98, 99, 102, 103], + [83, 88, 94, 96, 98, 100, 102], + [84, 89, 93, 96, 97, 101, 103], + [83, 88, 94, 97, 99, 101, 102], + [84, 89, 93, 98, 99, 100, 103], + [83, 88, 94, 97, 99, 100, 103], + [84, 89, 93, 98, 99, 101, 102], + [84, 89, 92, 98, 101, 102, 103], + [82, 87, 92, 98, 101, 102, 103], + [83, 88, 93, 98, 99, 101, 102], + [84, 89, 94, 97, 99, 100, 103], + [83, 88, 93, 98, 99, 100, 103], + [84, 89, 94, 97, 99, 101, 102], + [84, 89, 94, 96, 101, 102, 103], + [83, 88, 93, 96, 97, 101, 103], + [84, 89, 94, 96, 98, 100, 102], + [84, 89, 94, 98, 99, 102, 103], + [38, 79, 80, 81, 82, 83, 84], + [51, 78, 85, 86, 87, 88, 89], + [60, 85, 90, 91, 92, 93, 94], + [66, 80, 90, 95, 96, 97, 98], + [69, 86, 91, 95, 99, 100, 101], + [68, 87, 92, 96, 99, 102, 103], + [69, 83, 88, 93, 97, 100, 102], + [69, 84, 89, 94, 98, 101, 103], + [51, 80, 85, 86, 87, 88, 89], + [60, 85, 90, 91, 92, 93, 94], + [66, 78, 90, 95, 96, 97, 98], + [69, 86, 91, 95, 99, 100, 101], + [68, 87, 92, 96, 99, 102, 103], + [69, 84, 88, 93, 97, 100, 102], + [69, 83, 89, 94, 98, 101, 103], + [60, 79, 90, 91, 92, 93, 94], + [69, 81, 91, 95, 99, 100, 101], + [68, 82, 92, 96, 99, 102, 103], + [69, 83, 89, 93, 97, 100, 102], + [69, 84, 88, 94, 98, 101, 103], + [66, 80, 85, 95, 96, 97, 98], + [69, 81, 86, 95, 99, 100, 101], + [68, 82, 87, 96, 99, 102, 103], + [69, 83, 88, 94, 97, 100, 102], + [69, 84, 89, 93, 98, 101, 103], + [69, 81, 86, 91, 99, 100, 101], + [68, 82, 87, 92, 99, 102, 103], + [69, 83, 88, 93, 98, 100, 102], + [69, 84, 89, 94, 97, 101, 103], + [69, 82, 87, 92, 96, 102, 103], + [68, 83, 88, 93, 97, 101, 102], + [67, 84, 89, 94, 98, 100, 103], + [69, 83, 88, 93, 97, 100, 103], + [69, 84, 89, 94, 98, 101, 102]] + +def wData : List (List (List Nat)) := [ + [[2, 1, 1, 1, 1, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [2, 1, 0, 1, 1, 2, 0, 0]], + [[1, 2, 0, 2, 2, 1, 1, 1], [1, 2, 1, 2, 2, 0, 0, 0], [2, 0, 2, 1, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [0, 0, 0, 0, 0, 0, 1, 1]], + [[2, 1, 1, 1, 1, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [2, 1, 0, 1, 1, 2, 0, 0]], + [[1, 2, 0, 2, 2, 1, 0, 0], [1, 2, 1, 2, 2, 0, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [0, 0, 1, 0, 0, 0, 0, 1]], + [[0, 0, 2, 0, 1, 2, 2, 2], [2, 1, 2, 1, 0, 2, 2, 2], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [1, 2, 2, 2, 1, 2, 1, 2]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [0, 1, 2, 1, 1, 2, 0, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [0, 1, 2, 1, 1, 2, 0, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [0, 1, 2, 1, 1, 2, 0, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [2, 1, 2, 1, 0, 2, 2, 2], [0, 1, 2, 1, 1, 2, 0, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [0, 2, 1, 2, 2, 1, 0, 0], [1, 2, 1, 2, 2, 0, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [1, 0, 0, 0, 0, 0, 0, 1]], + [[0, 2, 1, 2, 2, 1, 1, 1], [2, 0, 0, 0, 1, 2, 2, 2], [2, 1, 2, 1, 0, 2, 2, 2], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [2, 2, 1, 2, 1, 2, 1, 2]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [1, 2, 1, 0, 0, 0, 1, 1]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [2, 1, 2, 1, 0, 2, 2, 2], [1, 2, 1, 0, 0, 0, 1, 1]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [1, 2, 1, 1, 2, 1, 1, 1], [2, 1, 2, 1, 0, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [0, 0, 0, 1, 0, 0, 2, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [0, 2, 0, 0, 2, 0, 0, 0], [1, 2, 1, 2, 2, 1, 0, 1], [2, 1, 2, 1, 0, 2, 2, 2], [1, 0, 1, 2, 0, 0, 1, 1]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [0, 2, 0, 0, 2, 0, 0, 0], [1, 2, 1, 2, 2, 1, 1, 0], [2, 1, 2, 1, 0, 2, 2, 2], [1, 0, 1, 2, 0, 0, 1, 1]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 0, 2, 1, 0, 0, 2, 2], [1, 2, 1, 2, 2, 0, 1, 1], [1, 2, 1, 2, 2, 1, 1, 0], [2, 2, 2, 1, 2, 1, 1, 2]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [1, 1, 1, 2, 2, 1, 1, 1], [2, 1, 2, 1, 0, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [0, 1, 0, 0, 0, 0, 2, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [0, 2, 0, 2, 2, 1, 0, 1], [1, 2, 1, 2, 2, 0, 1, 1], [1, 0, 1, 0, 0, 0, 0, 0]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [0, 2, 0, 2, 2, 1, 1, 0], [1, 0, 1, 0, 0, 0, 0, 0], [1, 2, 1, 2, 2, 0, 1, 1]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [2, 0, 2, 0, 1, 2, 0, 2], [2, 2, 2, 2, 1, 2, 1, 1], [2, 1, 2, 1, 0, 2, 2, 2]], + [[0, 2, 1, 2, 2, 1, 1, 1], [1, 2, 0, 2, 2, 1, 1, 1], [2, 0, 2, 1, 1, 2, 2, 2], [2, 1, 2, 0, 1, 2, 2, 2], [1, 2, 1, 2, 2, 1, 1, 0], [0, 2, 0, 2, 0, 0, 0, 0], [1, 0, 1, 0, 2, 1, 0, 1]], + [[1, 1, 0, 1, 1, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1, 2, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1, 2, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1, 2, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1, 2, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 0, 2, 0, 0, 2, 1, 1], [1, 1, 2, 1, 1, 1, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [0, 2, 0, 2, 2, 0, 0, 1]], + [[1, 1, 0, 1, 1, 0, 0, 0], [1, 1, 1, 1, 2, 0, 0, 0], [2, 0, 0, 0, 2, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [1, 1, 1, 1, 0, 2, 1, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 1, 1, 0, 0, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 1, 1, 1, 2, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [0, 1, 0, 1, 0, 0, 0, 0], [2, 1, 0, 2, 2, 2, 0, 0]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [1, 2, 0, 1, 1, 1, 0, 0], [1, 1, 2, 1, 1, 1, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [1, 0, 2, 1, 1, 1, 1, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [2, 2, 0, 1, 2, 2, 0, 0]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [1, 1, 0, 2, 1, 1, 0, 0], [1, 1, 2, 1, 1, 1, 2, 2], [2, 2, 2, 2, 2, 2, 2, 1], [1, 1, 2, 0, 1, 1, 1, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 2, 2, 0, 0, 2, 2, 2], [2, 0, 0, 0, 2, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 0, 0, 2, 2, 0, 2, 0]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 2, 0, 0, 1, 2, 1]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [1, 1, 0, 1, 2, 0, 0, 1], [2, 0, 0, 0, 2, 0, 0, 0], [1, 1, 2, 1, 0, 2, 1, 1]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 0, 1, 0, 0, 2, 2, 1], [0, 2, 1, 2, 2, 0, 0, 0], [1, 1, 2, 1, 1, 1, 2, 2]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [1, 1, 0, 1, 2, 0, 1, 0], [1, 1, 2, 1, 0, 2, 1, 1], [2, 0, 0, 0, 2, 0, 0, 0]], + [[1, 1, 0, 1, 1, 0, 0, 0], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [2, 2, 0, 2, 1, 0, 2, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [2, 0, 2, 2, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [0, 1, 2, 2, 2, 2, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [0, 1, 2, 2, 2, 2, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 2, 1, 1, 1, 1, 0, 0], [2, 1, 1, 1, 1, 1, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 0, 1, 1, 1, 1, 1, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [2, 0, 0, 2, 0, 2, 2, 2], [0, 0, 2, 0, 2, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [0, 2, 2, 0, 2, 0, 2, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2, 2, 1], [0, 1, 0, 1, 0, 0, 0, 0], [0, 2, 2, 1, 2, 2, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 1, 2, 1, 1, 0, 0], [2, 1, 1, 1, 1, 1, 2, 2], [2, 2, 2, 2, 2, 2, 2, 1], [2, 1, 1, 0, 1, 1, 1, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 0, 0, 0, 2, 2, 2], [0, 0, 2, 0, 2, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [0, 0, 2, 2, 2, 0, 2, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 1, 0, 1, 0, 0, 0, 0], [2, 0, 1, 0, 0, 1, 2, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [1, 0, 2, 0, 0, 2, 1, 2], [2, 1, 1, 1, 1, 1, 2, 2], [1, 2, 0, 2, 2, 0, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 1, 1, 2, 0, 0, 1], [0, 0, 2, 0, 2, 0, 0, 0], [2, 1, 1, 1, 0, 2, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [1, 0, 2, 0, 0, 2, 2, 1], [1, 2, 0, 2, 2, 0, 0, 0], [2, 1, 1, 1, 1, 1, 2, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 1, 1, 2, 0, 1, 0], [2, 1, 1, 1, 0, 2, 1, 1], [0, 0, 2, 0, 2, 0, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [0, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 2, 2, 2, 1, 0, 2, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2, 1, 2], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 1, 0, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2, 2, 1], [0, 1, 0, 1, 0, 0, 0, 0], [1, 0, 1, 0, 1, 0, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [2, 0, 2, 0, 2, 0, 2, 2], [0, 2, 0, 0, 0, 2, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [0, 2, 0, 2, 0, 2, 2, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 2, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 1], [1, 1, 1, 1, 1, 1, 0, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [0, 2, 0, 1, 1, 1, 0, 1], [0, 2, 0, 0, 0, 2, 0, 0], [2, 0, 2, 1, 1, 1, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 0, 2, 2, 0, 2, 2, 0], [1, 1, 1, 2, 1, 1, 1, 1], [0, 2, 0, 0, 2, 0, 2, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [0, 2, 0, 1, 1, 1, 1, 0], [2, 0, 2, 1, 1, 1, 1, 1], [0, 2, 0, 0, 0, 2, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 0, 2, 2, 0, 2, 0, 2], [0, 2, 0, 0, 2, 0, 2, 2], [1, 1, 1, 2, 1, 1, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [2, 0, 2, 2, 2, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [1, 0, 1, 1, 0, 1, 0, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [0, 1, 0, 1, 1, 0, 0, 1], [0, 1, 0, 1, 0, 0, 0, 0], [0, 2, 0, 1, 2, 2, 0, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [0, 1, 0, 2, 1, 1, 0, 1], [0, 0, 0, 2, 0, 2, 0, 0], [2, 1, 2, 0, 1, 1, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 0, 0, 2, 2, 0], [1, 2, 1, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 2, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [0, 1, 0, 2, 1, 1, 1, 0], [2, 1, 2, 0, 1, 1, 1, 1], [0, 0, 0, 2, 0, 2, 0, 0]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 0, 0, 2, 0, 2], [0, 0, 0, 2, 2, 0, 2, 2], [1, 2, 1, 1, 1, 1, 1, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [2, 2, 2, 0, 2, 2, 2, 2], [2, 2, 2, 2, 2, 2, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [1, 1, 1, 0, 0, 1, 0, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [1, 0, 1, 0, 0, 2, 2, 2], [2, 1, 2, 0, 1, 1, 1, 1], [0, 1, 0, 1, 1, 0, 0, 1], [2, 1, 2, 1, 1, 1, 2, 1]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 1, 2, 0, 1, 1], [0, 0, 0, 2, 2, 0, 2, 2], [0, 1, 0, 1, 1, 0, 0, 1], [0, 0, 0, 0, 2, 0, 0, 2]], + [[1, 2, 2, 2, 2, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 1, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 2, 0, 2, 1, 0, 2, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 2, 1, 1, 1, 2, 2, 2], [2, 1, 1, 2, 1, 2, 2, 2], [0, 0, 2, 0, 0, 0, 0, 1], [0, 0, 2, 0, 0, 0, 1, 0], [1, 1, 0, 1, 2, 1, 1, 1], [2, 0, 1, 0, 0, 0, 2, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 2, 1, 1, 2, 1, 1, 1], [0, 1, 0, 2, 0, 0, 0, 0], [1, 2, 1, 1, 2, 1, 1, 2], [1, 2, 1, 1, 2, 1, 2, 1], [2, 0, 2, 2, 1, 2, 2, 2], [0, 2, 0, 1, 2, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 0, 1, 0, 0, 0, 0, 0], [1, 1, 2, 2, 1, 2, 2, 2], [2, 0, 0, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 1, 0], [0, 1, 1, 1, 2, 1, 1, 1], [1, 0, 2, 0, 0, 0, 2, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [1, 0, 2, 0, 0, 0, 0, 0], [2, 2, 1, 1, 1, 2, 2, 2], [0, 0, 2, 0, 0, 0, 0, 1], [0, 0, 2, 0, 0, 0, 1, 0], [1, 1, 0, 1, 2, 1, 1, 1], [2, 0, 1, 0, 0, 0, 2, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 0, 1, 0, 0, 0, 0, 0], [1, 2, 2, 1, 1, 2, 2, 2], [1, 1, 2, 2, 1, 2, 2, 2], [2, 0, 0, 0, 0, 0, 1, 0], [0, 1, 1, 1, 2, 1, 1, 1], [1, 0, 2, 0, 0, 0, 2, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 0, 1, 0, 0, 0, 0, 0], [1, 2, 2, 1, 1, 2, 2, 2], [1, 1, 2, 2, 1, 2, 2, 2], [1, 0, 2, 0, 0, 2, 2, 0], [1, 1, 2, 1, 2, 2, 2, 2], [1, 0, 2, 0, 0, 0, 2, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 0, 1, 0, 0, 0, 1, 1], [1, 0, 2, 0, 0, 0, 1, 1], [0, 2, 0, 1, 1, 2, 0, 0], [0, 1, 0, 2, 1, 2, 0, 0], [0, 0, 0, 0, 0, 2, 0, 1], [1, 0, 1, 0, 0, 0, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [0, 2, 2, 2, 1, 2, 2, 2], [2, 2, 0, 2, 1, 2, 2, 2], [1, 1, 1, 0, 2, 1, 1, 1], [1, 0, 1, 1, 2, 1, 1, 1], [1, 2, 1, 2, 1, 1, 1, 2], [2, 2, 2, 2, 1, 2, 0, 2]], + [[2, 0, 2, 0, 0, 2, 2, 2], [0, 1, 0, 0, 1, 0, 0, 0], [0, 0, 0, 2, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [1, 1, 2, 1, 1, 1, 1, 1], [0, 2, 0, 0, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 2, 1, 2, 2, 2, 2, 2], [0, 0, 0, 2, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 2, 0, 2, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [0, 2, 0, 2, 2, 2, 0, 0], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [1, 1, 1, 1, 0, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [0, 2, 0, 0, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 2, 0, 2, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [0, 2, 0, 2, 2, 2, 0, 0], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [2, 2, 1, 2, 2, 2, 2, 2], [1, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 2, 0, 0, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 2, 0, 2, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 2, 0, 2, 2, 2, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 1, 1, 1], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [1, 1, 1, 1, 1, 1, 2, 1], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 2, 0, 2, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 2, 2, 2, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [1, 1, 1, 1, 0, 1, 1, 1], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 2, 1]], + [[1, 0, 1, 0, 0, 1, 1, 1], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [2, 2, 2, 2, 0, 2, 2, 2], [0, 1, 0, 1, 1, 1, 0, 0]], + [[1, 0, 1, 0, 0, 1, 1, 1], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 2, 0, 2, 2, 2, 0, 0], [0, 1, 0, 1, 1, 0, 1, 0]], + [[1, 0, 1, 0, 0, 1, 1, 1], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [1, 1, 1, 1, 0, 1, 1, 1], [0, 1, 0, 1, 1, 0, 1, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [0, 2, 0, 2, 2, 2, 0, 0]], + [[2, 0, 2, 0, 0, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 1], [1, 1, 2, 1, 1, 1, 1, 1], [0, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 0, 2, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 1], [1, 1, 1, 1, 0, 1, 1, 1]]] + +def comb0 : List (List (Nat × Nat)) := [[], [(57, 1), (58, 1), (60, 2), (63, 2), (66, 2), (67, 1), (72, 1), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(57, 1), (60, 2), (63, 2), (66, 2), (67, 1), (71, 2), (72, 1), (74, 1), (117, 2), (121, 2), (233, 2), (234, 1), (291, 1)], [(57, 1), (60, 1), (63, 2), (66, 2), (67, 2), (72, 1), (117, 2), (121, 1), (173, 1), (233, 2), (234, 1), (291, 1)], [(57, 1), (60, 1), (63, 2), (66, 1), (67, 2), (72, 2), (117, 2), (121, 1), (233, 2), (234, 2), (291, 1)], [(57, 2), (60, 2), (63, 1), (66, 2), (67, 1), (72, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [], [], [(57, 1), (60, 2), (63, 1), (66, 2), (67, 1), (72, 1), (75, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [(57, 1), (60, 2), (63, 2), (64, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (77, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [(57, 1), (60, 2), (63, 2), (66, 2), (67, 1), (72, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [], [], [], [], [], [(57, 2), (58, 1), (60, 1), (63, 1), (64, 1), (65, 2), (66, 1), (68, 1), (71, 2), (72, 2), (74, 1), (115, 2), (117, 1), (127, 2), (131, 1), (291, 2)], [], [], [], [], [], [(57, 1), (58, 2), (60, 2), (63, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 2), (72, 1), (74, 1), (115, 1), (117, 1), (121, 1), (127, 1), (131, 2), (291, 2)], [(57, 1), (58, 1), (60, 2), (63, 2), (65, 1), (66, 1), (68, 2), (71, 2), (72, 2), (74, 1), (115, 2), (117, 1), (127, 2), (131, 1), (291, 2)], [(57, 1), (58, 2), (60, 1), (63, 2), (65, 2), (66, 2), (68, 1), (71, 2), (72, 1), (74, 1), (115, 2), (117, 1), (127, 2), (131, 1), (291, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [(57, 2), (58, 1), (60, 1), (63, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 1), (72, 2), (74, 2), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 1), (60, 1), (63, 1), (65, 1), (67, 1), (68, 2), (71, 1), (74, 2), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 1), (60, 1), (63, 1), (65, 1), (66, 1), (67, 1), (68, 2), (71, 1), (72, 2), (74, 2), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 2), (63, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (72, 2), (74, 1), (115, 1), (121, 2), (127, 1), (131, 2), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 1), (60, 1), (63, 1), (65, 1), (67, 1), (68, 2), (71, 2), (74, 1), (115, 2), (117, 2), (121, 2), (127, 1), (131, 2), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 2), (60, 1), (63, 1), (64, 2), (65, 1), (66, 1), (67, 1), (68, 2), (71, 2), (72, 2), (74, 1), (115, 1), (117, 2), (120, 1), (121, 2), (127, 1), (131, 2), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 2), (60, 1), (63, 1), (65, 2), (66, 1), (68, 1), (71, 1), (72, 2), (74, 2), (115, 1), (117, 2), (127, 1), (131, 2), (173, 2), (174, 1), (233, 2), (234, 1), (291, 1)], [(57, 2), (58, 2), (60, 1), (63, 1), (65, 2), (66, 2), (68, 1), (71, 1), (72, 1), (74, 2), (115, 1), (117, 2), (127, 1), (131, 2), (233, 2), (236, 1), (291, 1)], [(57, 2), (58, 2), (60, 2), (63, 1), (64, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (115, 1), (117, 2), (127, 1), (131, 2), (173, 2), (181, 1), (233, 2), (234, 1), (291, 1)], [], [], [], [], [], [], [], [], [], [(58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (74, 1), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(58, 1), (65, 2), (67, 1), (68, 2), (71, 2), (74, 1), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(58, 1), (65, 1), (67, 2), (68, 2), (71, 2), (74, 1), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(58, 1), (65, 2), (67, 1), (68, 1), (71, 2), (73, 1), (74, 1), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (72, 2), (74, 2), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(60, 1), (65, 1), (67, 1), (68, 2), (71, 1), (74, 2), (80, 1), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [(58, 1), (64, 1), (65, 2), (67, 1), (68, 1), (71, 2), (74, 1), (115, 2), (117, 2), (120, 2), (121, 2), (127, 2), (130, 1), (131, 1), (233, 2), (234, 1), (291, 1)], [(58, 2), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (72, 2), (74, 1), (115, 1), (117, 2), (121, 2), (127, 2), (131, 2), (233, 2), (234, 1), (291, 1)], [(58, 1), (60, 1), (65, 1), (67, 1), (68, 2), (71, 2), (74, 1), (115, 1), (117, 2), (121, 2), (127, 1), (131, 2), (137, 1), (233, 2), (234, 1), (291, 1)], [], [(57, 2), (58, 2), (65, 1), (67, 2), (68, 2), (71, 1), (74, 2), (115, 1), (117, 1), (121, 1), (127, 1), (131, 2), (233, 2), (234, 1), (291, 2), (314, 1)], [], [(58, 1), (64, 2), (65, 1), (67, 2), (68, 2), (71, 1), (74, 2), (99, 1), (115, 2), (121, 1), (127, 2), (131, 1), (233, 1), (234, 2)], [(58, 2), (64, 2), (65, 1), (67, 2), (68, 2), (71, 2), (74, 1), (115, 1), (121, 1), (127, 1), (131, 2), (157, 1), (233, 1), (234, 2)], [(58, 2), (65, 2), (66, 1), (67, 1), (68, 1), (71, 1), (72, 2), (74, 2), (115, 1), (117, 1), (120, 2), (121, 2), (127, 1), (131, 2), (233, 2), (234, 1), (291, 2), (392, 1)], [(58, 2), (60, 1), (64, 2), (65, 1), (67, 1), (68, 2), (71, 1), (74, 2), (115, 1), (121, 2), (127, 1), (131, 2), (173, 2), (216, 1), (233, 1), (234, 2)], [(58, 2), (60, 1), (64, 2), (65, 1), (66, 1), (67, 1), (68, 2), (71, 1), (72, 2), (74, 2), (115, 1), (121, 2), (127, 1), (131, 2), (233, 1), (234, 1), (274, 1)], [(57, 2), (58, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (71, 2), (72, 2), (74, 1), (75, 2), (115, 2), (117, 1), (120, 1), (127, 2), (130, 2), (131, 1), (291, 2), (470, 1)], [], [(57, 1), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (115, 1), (121, 2), (127, 1), (131, 2), (233, 2), (234, 1)], [(60, 2), (66, 2), (67, 1), (71, 1), (72, 1), (74, 2), (114, 1), (121, 2), (233, 2), (234, 1)], [(60, 2), (64, 1), (65, 1), (68, 2), (117, 1), (120, 2), (291, 2), (293, 1)], [(66, 2), (72, 1), (172, 1), (173, 2), (233, 2), (234, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb1 : List (List (Nat × Nat)) := [[(1, 1), (6, 1), (9, 1), (10, 2), (15, 1), (16, 2), (18, 2), (115, 2), (117, 2), (121, 2), (127, 2), (131, 1), (233, 2), (234, 1), (291, 1)], [], [(1, 1), (8, 1), (10, 2), (18, 2), (117, 2), (121, 2), (233, 2), (234, 1), (291, 1)], [(1, 2), (6, 1), (7, 2), (8, 1), (10, 2), (18, 1), (117, 2), (121, 1), (173, 1), (233, 2), (234, 1), (291, 1)], [(1, 2), (8, 2), (10, 1), (18, 1), (117, 2), (121, 1), (233, 2), (234, 2), (291, 1)], [], [(0, 1), (1, 1), (3, 2), (6, 1), (9, 1), (10, 2), (15, 1), (17, 2), (18, 2), (20, 2), (115, 2), (117, 2), (120, 1), (121, 2), (127, 2), (130, 2), (131, 1), (233, 2), (234, 1), (291, 1), (470, 1)], [], [], [], [], [], [], [], [(1, 1), (8, 1), (10, 2), (18, 2), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [(0, 2), (1, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (15, 2), (18, 1), (20, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [(1, 1), (6, 1), (8, 1), (10, 2), (18, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [(1, 1), (8, 2), (10, 2), (18, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [], [], [(0, 2), (1, 1), (3, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1), (15, 2), (17, 1), (20, 1), (120, 2), (130, 1), (470, 2)], [], [], [], [], [(0, 1), (1, 1), (3, 2), (6, 1), (7, 2), (11, 1), (15, 1), (17, 2), (18, 2), (20, 2), (117, 2), (120, 1), (121, 1), (130, 2), (291, 1), (470, 1)], [], [], [(0, 1), (1, 2), (3, 2), (7, 2), (8, 1), (9, 2), (11, 1), (16, 1), (17, 2), (18, 2), (20, 2), (115, 1), (117, 2), (120, 1), (127, 1), (130, 2), (131, 2), (291, 1), (470, 1)], [(0, 2), (1, 1), (3, 2), (6, 1), (7, 2), (11, 1), (12, 2), (15, 1), (17, 2), (18, 2), (20, 2), (115, 1), (117, 2), (120, 1), (127, 1), (130, 2), (131, 2), (291, 1), (470, 1)], [(0, 1), (1, 1), (7, 2), (8, 1), (9, 2), (11, 1), (15, 1), (17, 2), (18, 2), (20, 2), (115, 1), (117, 2), (120, 1), (127, 1), (130, 2), (131, 2), (291, 1), (470, 1)], [], [], [], [], [], [], [(0, 1), (3, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (15, 1), (17, 2), (20, 2), (115, 1), (120, 1), (121, 2), (127, 1), (130, 2), (131, 2), (233, 2), (234, 1), (470, 1)], [(0, 1), (3, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 1), (16, 1), (17, 2), (20, 2), (115, 1), (120, 1), (121, 2), (127, 1), (130, 2), (131, 2), (233, 2), (234, 1), (470, 1)], [(0, 1), (3, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (16, 1), (17, 2), (20, 2), (115, 1), (120, 1), (121, 2), (127, 1), (130, 2), (131, 2), (233, 2), (234, 1), (470, 1)], [], [], [], [(0, 1), (3, 2), (6, 2), (7, 1), (8, 1), (10, 2), (11, 1), (15, 1), (17, 2), (20, 2), (117, 1), (120, 1), (121, 2), (130, 2), (233, 2), (234, 1), (470, 1)], [(0, 1), (3, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (15, 1), (17, 2), (20, 2), (115, 1), (120, 1), (121, 2), (130, 2), (233, 2), (234, 1), (470, 1)], [(0, 1), (3, 1), (6, 2), (7, 1), (8, 1), (10, 2), (11, 2), (15, 1), (17, 2), (20, 2), (120, 2), (121, 2), (130, 2), (233, 2), (234, 1), (470, 1)], [(0, 2), (1, 1), (3, 2), (6, 1), (8, 1), (10, 2), (11, 1), (12, 2), (15, 2), (17, 2), (18, 1), (20, 1), (120, 1), (130, 2), (173, 2), (174, 1), (233, 2), (234, 1), (470, 1)], [(0, 2), (1, 1), (3, 2), (6, 2), (7, 2), (11, 1), (12, 2), (15, 2), (17, 2), (18, 1), (20, 1), (120, 1), (130, 2), (233, 2), (236, 1), (470, 1)], [(0, 1), (1, 2), (3, 1), (6, 1), (7, 2), (8, 1), (10, 2), (11, 2), (15, 1), (17, 2), (18, 1), (20, 2), (120, 1), (130, 2), (173, 2), (181, 1), (233, 2), (234, 1), (470, 1)], [], [], [], [], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 2), (8, 1), (10, 2), (11, 2), (15, 2), (17, 1), (18, 1), (20, 1), (117, 1), (120, 2), (121, 2), (130, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [(0, 2), (1, 2), (3, 1), (6, 2), (7, 1), (11, 2), (15, 2), (17, 1), (18, 1), (20, 1), (117, 1), (120, 2), (121, 2), (130, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 2), (8, 1), (10, 2), (11, 1), (15, 2), (16, 1), (17, 1), (18, 1), (20, 1), (117, 1), (120, 2), (121, 2), (130, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [(0, 2), (1, 2), (3, 1), (6, 2), (7, 2), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (17, 2), (18, 1), (20, 1), (117, 1), (120, 2), (121, 2), (130, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [(0, 1), (3, 1), (6, 1), (7, 1), (8, 1), (9, 2), (10, 2), (11, 2), (12, 1), (15, 1), (16, 1), (17, 1), (18, 1), (20, 1), (22, 1), (117, 1), (120, 2), (121, 2), (130, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [], [], [], [], [], [], [(0, 2), (1, 2), (3, 2), (6, 1), (7, 2), (8, 1), (10, 2), (11, 1), (15, 2), (17, 1), (18, 1), (20, 1), (117, 1), (120, 1), (121, 2), (130, 2), (233, 2), (234, 1), (291, 2), (470, 2)], [(0, 2), (1, 2), (3, 1), (6, 2), (7, 2), (9, 1), (10, 2), (11, 1), (15, 2), (17, 1), (18, 1), (20, 1), (115, 2), (117, 1), (120, 2), (121, 2), (130, 1), (131, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [(0, 2), (1, 2), (3, 1), (6, 2), (7, 2), (9, 1), (10, 2), (11, 1), (15, 2), (17, 1), (18, 1), (20, 1), (115, 2), (117, 1), (120, 2), (121, 2), (127, 2), (130, 1), (131, 1), (137, 1), (233, 2), (234, 1), (291, 2), (470, 2)], [], [(0, 1), (1, 1), (3, 2), (6, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 1), (15, 1), (17, 1), (18, 2), (20, 2), (117, 2), (120, 1), (121, 1), (130, 2), (233, 2), (234, 1), (291, 1), (314, 1), (470, 1)], [(0, 1), (1, 1), (3, 1), (6, 1), (7, 1), (9, 2), (10, 1), (11, 2), (12, 1), (15, 1), (16, 1), (17, 1), (18, 2), (20, 1), (44, 1), (117, 2), (120, 2), (121, 1), (130, 1), (233, 1), (234, 2), (291, 1), (470, 2)], [], [(0, 1), (1, 1), (3, 1), (6, 2), (7, 1), (8, 2), (10, 1), (11, 2), (12, 1), (15, 2), (17, 1), (18, 2), (20, 1), (115, 2), (117, 2), (120, 2), (121, 1), (127, 2), (130, 1), (131, 1), (157, 1), (233, 1), (234, 2), (291, 1), (470, 2)], [(0, 2), (1, 2), (3, 2), (6, 2), (7, 2), (9, 1), (10, 2), (11, 1), (16, 2), (17, 1), (20, 1), (115, 2), (120, 1), (121, 2), (127, 2), (130, 1), (131, 1), (233, 2), (234, 1), (392, 1), (470, 2)], [(0, 2), (1, 2), (3, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 2), (16, 2), (17, 1), (20, 1), (115, 2), (117, 2), (120, 2), (121, 2), (127, 2), (130, 1), (131, 1), (173, 2), (216, 1), (233, 1), (234, 2), (291, 1), (470, 2)], [(0, 2), (1, 2), (3, 1), (7, 1), (9, 1), (10, 2), (11, 2), (16, 2), (17, 1), (20, 1), (115, 2), (117, 2), (120, 2), (121, 2), (127, 2), (130, 1), (131, 1), (233, 1), (234, 1), (274, 1), (291, 1), (470, 2)], [], [(1, 1), (6, 2), (8, 2), (9, 2), (10, 2), (15, 2), (16, 1), (115, 1), (121, 2), (127, 1), (131, 2), (233, 2), (234, 1)], [], [(1, 1), (6, 2), (8, 1), (10, 2), (114, 1), (121, 2), (233, 2), (234, 1)], [(3, 1), (11, 2), (117, 1), (120, 2), (291, 2), (293, 1)], [(6, 2), (7, 1), (8, 1), (10, 2), (172, 1), (173, 2), (233, 2), (234, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb2 : List (List (Nat × Nat)) := [[(3, 2), (9, 1), (13, 2), (18, 1), (19, 1), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(3, 2), (9, 1), (13, 1), (18, 2), (58, 2), (64, 2), (233, 2), (234, 1), (291, 1)], [], [(3, 2), (9, 1), (13, 2), (18, 1), (58, 1), (64, 2), (173, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (2, 1), (3, 1), (9, 2), (13, 2), (18, 1), (58, 2), (64, 1), (233, 2), (234, 2), (291, 1)], [], [], [(0, 1), (2, 2), (3, 2), (6, 1), (9, 1), (13, 1), (18, 1), (58, 1), (64, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [(0, 1), (2, 2), (3, 2), (9, 1), (13, 2), (18, 1), (57, 2), (58, 1), (64, 2), (75, 1), (233, 2), (234, 1), (291, 2)], [], [], [(0, 1), (2, 2), (3, 2), (9, 1), (13, 1), (18, 2), (58, 1), (64, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [(0, 1), (2, 2), (3, 2), (9, 1), (13, 2), (18, 1), (58, 1), (64, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (18, 1), (71, 2), (74, 1), (291, 2)], [], [], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (18, 2), (19, 2), (71, 2), (74, 1), (291, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 2), (6, 1), (7, 2), (15, 1), (16, 2), (18, 2), (19, 2), (71, 2), (74, 1), (291, 2)], [(1, 2), (3, 1), (4, 1), (6, 1), (7, 1), (9, 1), (13, 1), (18, 1), (71, 2), (74, 1), (291, 2)], [], [], [], [(0, 1), (1, 1), (2, 2), (4, 2), (6, 1), (7, 2), (9, 1), (18, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [], [(0, 2), (1, 1), (2, 2), (4, 2), (6, 1), (7, 2), (9, 1), (13, 2), (19, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (9, 1), (13, 2), (19, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 1), (7, 2), (9, 1), (18, 2), (60, 1), (64, 2), (71, 1), (74, 2), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 1), (2, 2), (4, 2), (6, 1), (7, 2), (9, 1), (18, 2), (58, 1), (64, 2), (71, 1), (74, 2), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (18, 2), (71, 1), (74, 2), (233, 2), (234, 1), (291, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 1), (7, 2), (9, 1), (13, 2), (58, 1), (64, 2), (71, 1), (74, 2), (173, 2), (174, 1), (233, 2), (234, 1), (291, 1)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (13, 2), (71, 1), (74, 2), (233, 2), (236, 1), (291, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 1), (7, 2), (9, 1), (13, 2), (58, 1), (64, 2), (71, 1), (74, 2), (173, 2), (181, 1), (233, 2), (234, 1), (291, 1)], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (13, 2), (18, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 2), (2, 2), (4, 2), (6, 2), (7, 1), (9, 1), (13, 2), (18, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (5, 1), (6, 2), (7, 1), (9, 1), (13, 2), (18, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [], [], [(0, 1), (1, 2), (2, 2), (4, 1), (6, 2), (7, 1), (9, 1), (13, 2), (16, 1), (18, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (13, 2), (17, 1), (18, 2), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (13, 1), (19, 2), (22, 1), (58, 1), (64, 2), (71, 2), (74, 1), (233, 2), (234, 1), (291, 1)], [], [], [], [(0, 1), (1, 2), (2, 2), (4, 1), (6, 2), (7, 1), (9, 2), (13, 2), (18, 2), (58, 1), (64, 1), (71, 2), (73, 1), (74, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (13, 2), (18, 2), (64, 2), (71, 2), (74, 2), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (13, 2), (18, 2), (64, 2), (71, 1), (74, 2), (80, 1), (233, 2), (234, 1), (291, 1)], [], [], [], [], [(1, 1), (2, 1), (4, 2), (6, 1), (7, 2), (9, 1), (13, 1), (17, 2), (18, 1), (57, 2), (58, 2), (64, 2), (71, 1), (74, 2), (233, 2), (234, 1), (291, 2), (314, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (9, 2), (13, 1), (18, 1), (19, 2), (44, 1), (58, 2), (64, 1), (71, 2), (74, 1), (233, 1), (234, 2)], [(1, 1), (4, 2), (6, 2), (7, 2), (9, 1), (13, 1), (58, 1), (64, 1), (71, 1), (74, 2), (99, 1), (233, 1), (234, 2)], [], [(1, 2), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (19, 1), (58, 1), (64, 2), (71, 1), (74, 2), (233, 2), (234, 1), (291, 2), (392, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 2), (7, 1), (9, 2), (13, 1), (19, 1), (58, 2), (64, 1), (71, 1), (74, 2), (173, 2), (216, 1), (233, 1), (234, 2)], [(1, 1), (4, 2), (6, 2), (7, 1), (9, 1), (13, 1), (19, 1), (58, 1), (64, 2), (71, 1), (74, 2), (233, 1), (234, 1), (274, 1)], [(1, 2), (2, 1), (6, 2), (7, 1), (17, 2), (18, 1), (57, 1), (71, 2), (74, 1), (75, 2), (291, 2), (470, 1)], [(0, 2), (2, 1), (3, 2), (9, 1), (18, 1), (19, 2), (58, 1), (64, 2), (71, 1), (74, 2), (233, 2), (234, 1)], [(0, 2), (2, 1), (3, 2), (9, 1), (57, 1), (64, 2), (233, 2), (234, 1)], [], [(2, 1), (5, 2), (291, 2), (293, 1)], [(0, 2), (2, 1), (3, 2), (9, 1), (58, 1), (64, 2), (172, 1), (173, 2), (233, 2), (234, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb3 : List (List (Nat × Nat)) := [[(0, 2), (2, 1), (7, 1), (10, 2), (12, 1), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (117, 2), (233, 2), (234, 1), (291, 1)], [(0, 1), (2, 2), (6, 1), (7, 1), (8, 2), (10, 2), (58, 2), (64, 2), (115, 1), (117, 2), (233, 2), (234, 1), (291, 1)], [(0, 2), (2, 1), (3, 1), (7, 1), (9, 2), (10, 2), (58, 1), (64, 2), (115, 2), (117, 2), (233, 2), (234, 1), (291, 1)], [], [(0, 1), (2, 1), (5, 1), (7, 2), (10, 1), (58, 2), (64, 1), (115, 1), (117, 1), (120, 1), (233, 2), (234, 2), (291, 2), (293, 2)], [], [], [], [], [(0, 2), (2, 2), (5, 2), (7, 1), (8, 2), (10, 2), (18, 1), (58, 1), (64, 2), (115, 2), (117, 2), (120, 2), (233, 2), (234, 1), (291, 1), (293, 1)], [], [], [], [], [], [], [(0, 2), (2, 2), (5, 2), (6, 1), (7, 1), (8, 2), (10, 2), (58, 1), (64, 2), (115, 2), (117, 2), (120, 2), (233, 2), (234, 1), (291, 1), (293, 1)], [], [(2, 1), (3, 1), (5, 2), (7, 1), (9, 2), (10, 2), (58, 1), (64, 2), (115, 2), (117, 2), (120, 2), (233, 2), (234, 1), (291, 1), (293, 1)], [(0, 2), (2, 2), (5, 2), (7, 1), (10, 2), (58, 1), (64, 2), (115, 2), (117, 2), (120, 2), (233, 2), (234, 1), (291, 1), (293, 1)], [], [(0, 2), (2, 1), (4, 1), (7, 1), (9, 2), (10, 2), (58, 1), (64, 2), (115, 2), (117, 1), (233, 2), (234, 1), (291, 2)], [], [], [], [], [(3, 1), (5, 2), (6, 1), (7, 2), (9, 2), (12, 1), (18, 2), (19, 1), (58, 1), (64, 2), (66, 1), (72, 2), (115, 2), (117, 2), (120, 2), (291, 1), (293, 1)], [], [], [], [(2, 2), (3, 1), (5, 2), (6, 1), (7, 1), (8, 1), (9, 2), (12, 2), (18, 1), (19, 2), (58, 2), (64, 1), (66, 2), (72, 1), (115, 2), (117, 2), (120, 2), (291, 1), (293, 1)], [], [(3, 1), (5, 2), (6, 2), (7, 1), (9, 2), (12, 1), (18, 1), (19, 2), (58, 1), (64, 2), (66, 1), (72, 2), (115, 2), (117, 2), (120, 2), (291, 1), (293, 1)], [], [], [], [(2, 2), (3, 1), (5, 2), (6, 1), (7, 1), (8, 1), (9, 2), (12, 2), (18, 1), (19, 2), (58, 1), (64, 2), (66, 1), (72, 2), (115, 2), (117, 2), (120, 2), (291, 1), (293, 1)], [], [(2, 2), (3, 1), (6, 1), (7, 2), (8, 1), (9, 1), (12, 1), (18, 1), (19, 1), (21, 1), (58, 1), (64, 2), (66, 1), (72, 2), (115, 2), (117, 1), (291, 2)], [(0, 2), (3, 2), (5, 2), (6, 1), (8, 1), (9, 1), (10, 2), (12, 1), (18, 1), (19, 2), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (5, 2), (6, 2), (7, 2), (9, 2), (10, 2), (12, 1), (18, 1), (19, 2), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [], [(0, 2), (2, 1), (3, 2), (5, 1), (6, 2), (7, 2), (9, 2), (10, 2), (12, 1), (18, 1), (19, 2), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [(2, 2), (3, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 1), (10, 2), (12, 2), (18, 1), (19, 2), (58, 2), (60, 1), (66, 2), (72, 1), (115, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [], [(3, 2), (5, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 2), (12, 2), (18, 1), (19, 2), (58, 2), (64, 1), (66, 2), (72, 1), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [(0, 2), (3, 1), (5, 2), (6, 2), (7, 2), (9, 2), (10, 2), (12, 2), (18, 1), (19, 2), (66, 2), (72, 1), (117, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [], [(0, 2), (2, 1), (3, 1), (5, 1), (6, 2), (7, 2), (9, 2), (10, 2), (12, 2), (18, 1), (19, 2), (66, 2), (72, 1), (117, 1), (120, 2), (233, 2), (234, 1), (291, 2), (293, 2)], [], [(2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (12, 2), (18, 1), (19, 2), (58, 2), (64, 1), (66, 2), (72, 1), (115, 1), (117, 1), (120, 1), (233, 2), (236, 1), (291, 2), (293, 2)], [], [(0, 2), (2, 1), (3, 1), (5, 2), (6, 1), (9, 2), (10, 2), (12, 1), (18, 2), (19, 1), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [(0, 2), (2, 1), (3, 2), (5, 2), (6, 1), (9, 1), (10, 2), (12, 1), (18, 2), (19, 1), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [], [(0, 2), (2, 1), (3, 2), (4, 2), (5, 2), (6, 1), (9, 2), (10, 2), (12, 1), (18, 2), (19, 1), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [], [(0, 2), (2, 2), (3, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (12, 1), (18, 2), (19, 1), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [], [(0, 2), (2, 2), (3, 2), (4, 2), (5, 1), (6, 2), (8, 2), (9, 2), (10, 2), (17, 1), (18, 2), (19, 1), (58, 2), (64, 1), (66, 1), (72, 2), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [], [(0, 2), (2, 1), (3, 1), (5, 2), (6, 1), (9, 2), (10, 2), (12, 1), (18, 2), (19, 1), (58, 2), (66, 2), (72, 2), (115, 1), (120, 2), (233, 2), (234, 1), (293, 1)], [], [(0, 2), (2, 2), (3, 1), (5, 1), (6, 1), (9, 2), (10, 2), (12, 1), (18, 2), (19, 1), (58, 2), (60, 2), (64, 1), (66, 1), (67, 1), (72, 2), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [], [(2, 1), (3, 1), (5, 1), (6, 1), (7, 2), (9, 2), (10, 2), (12, 2), (18, 2), (19, 1), (58, 2), (66, 2), (71, 1), (72, 1), (115, 1), (117, 1), (120, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [], [], [(1, 2), (2, 1), (3, 1), (5, 1), (6, 1), (9, 2), (10, 2), (12, 2), (18, 2), (19, 1), (66, 2), (72, 1), (117, 1), (120, 1), (127, 1), (233, 2), (234, 1), (291, 2), (293, 2)], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (10, 2), (17, 2), (18, 1), (19, 2), (57, 2), (58, 1), (66, 2), (72, 1), (115, 2), (120, 1), (233, 2), (234, 1), (293, 2), (314, 1)], [(0, 1), (2, 2), (3, 2), (5, 1), (6, 1), (7, 1), (9, 1), (10, 1), (12, 1), (18, 2), (19, 1), (44, 1), (66, 1), (72, 2), (117, 2), (120, 1), (233, 1), (234, 2), (291, 1), (293, 2)], [(0, 2), (2, 2), (3, 2), (5, 1), (6, 1), (7, 1), (9, 1), (10, 1), (12, 1), (18, 2), (19, 1), (64, 2), (66, 2), (72, 1), (99, 1), (117, 2), (120, 1), (233, 1), (234, 2), (291, 1), (293, 2)], [(0, 1), (2, 2), (3, 1), (5, 1), (6, 1), (7, 1), (9, 2), (10, 1), (12, 2), (18, 2), (19, 1), (58, 1), (64, 2), (66, 2), (72, 1), (115, 2), (117, 2), (120, 1), (157, 1), (233, 1), (234, 2), (291, 1), (293, 2)], [(0, 2), (2, 2), (3, 2), (5, 1), (6, 1), (8, 2), (9, 1), (10, 2), (12, 2), (18, 2), (19, 1), (66, 2), (72, 1), (233, 2), (234, 1), (293, 2), (392, 1)], [], [(0, 2), (3, 2), (6, 2), (8, 2), (9, 1), (10, 2), (12, 1), (18, 2), (19, 1), (66, 2), (72, 1), (233, 1), (234, 1), (274, 1)], [(2, 1), (5, 1), (7, 2), (8, 1), (12, 2), (17, 2), (18, 2), (19, 1), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (115, 2), (120, 1), (293, 2), (470, 1)], [(0, 2), (5, 1), (7, 1), (8, 1), (10, 2), (12, 2), (66, 2), (72, 1), (117, 2), (120, 1), (233, 2), (234, 1), (291, 1), (293, 2)], [(0, 2), (3, 2), (5, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 2), (57, 1), (64, 2), (117, 2), (120, 1), (233, 2), (234, 1), (291, 1), (293, 2)], [(0, 2), (3, 2), (5, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 2), (58, 1), (64, 2), (114, 1), (115, 2), (117, 2), (120, 1), (233, 2), (234, 1), (291, 1), (293, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb4 : List (List (Nat × Nat)) := [[(3, 2), (6, 2), (8, 1), (9, 2), (57, 2), (58, 2), (63, 1), (64, 1), (117, 2), (120, 1), (291, 1)], [(3, 2), (6, 1), (8, 2), (9, 1), (58, 2), (64, 2), (117, 2), (120, 1), (291, 1)], [(0, 2), (2, 1), (3, 1), (6, 2), (8, 1), (9, 2), (58, 2), (64, 1), (117, 2), (120, 2), (291, 1)], [(0, 2), (3, 1), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (58, 2), (64, 1), (117, 1), (120, 2), (172, 1), (291, 2), (293, 2)], [], [], [], [], [], [], [(0, 1), (3, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (24, 1), (58, 1), (64, 2), (117, 2), (120, 1), (291, 1), (293, 1)], [], [], [(0, 1), (3, 2), (5, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (57, 2), (58, 1), (63, 1), (64, 2), (117, 2), (120, 1), (291, 1), (293, 1)], [], [], [], [(0, 1), (3, 2), (5, 2), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (58, 1), (64, 2), (117, 2), (120, 1), (291, 1), (293, 1)], [], [], [(0, 1), (3, 2), (5, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (58, 1), (64, 2), (117, 2), (120, 1), (291, 1), (293, 1)], [(0, 2), (3, 1), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (58, 2), (64, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2)], [], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (5, 1), (6, 2), (8, 2), (9, 1), (24, 2), (25, 1), (57, 2), (58, 2), (63, 1), (64, 1), (117, 2), (120, 1), (172, 1), (173, 2), (291, 1), (293, 1)], [], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (24, 1), (25, 2), (57, 2), (58, 2), (63, 1), (64, 1), (117, 2), (120, 1), (172, 1), (173, 2), (291, 1), (293, 1)], [], [(0, 1), (1, 1), (2, 2), (4, 2), (8, 2), (9, 1), (24, 1), (25, 2), (57, 2), (58, 2), (63, 1), (64, 1), (117, 2), (120, 1), (172, 1), (173, 2), (291, 1), (293, 1)], [], [(0, 2), (1, 1), (2, 1), (4, 2), (8, 2), (14, 1), (24, 1), (25, 2), (57, 2), (58, 2), (63, 1), (64, 1), (117, 2), (120, 1), (172, 1), (173, 2), (291, 1), (293, 1)], [(1, 1), (2, 1), (4, 1), (5, 2), (6, 2), (7, 2), (9, 1), (10, 1), (21, 1), (24, 1), (25, 2), (57, 2), (63, 1), (117, 1), (120, 2), (172, 2), (173, 1), (291, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 1), (9, 2), (24, 1), (25, 2), (57, 2), (58, 1), (63, 1), (64, 2), (172, 2), (173, 1), (293, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (7, 1), (8, 2), (9, 2), (10, 2), (24, 1), (25, 2), (57, 2), (58, 1), (63, 1), (64, 2), (172, 2), (173, 1), (293, 1)], [(1, 1), (2, 2), (3, 2), (4, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (24, 1), (25, 2), (57, 2), (63, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (10, 2), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (63, 2), (64, 1), (172, 2), (173, 1), (293, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (9, 2), (10, 1), (24, 1), (25, 2), (57, 1), (58, 1), (63, 2), (64, 2), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (8, 1), (9, 2), (24, 1), (25, 2), (57, 1), (58, 1), (63, 2), (64, 2), (117, 1), (120, 2), (172, 2), (173, 1), (293, 1)], [(1, 1), (2, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (24, 1), (25, 2), (57, 1), (63, 2), (115, 1), (117, 1), (120, 1), (172, 1), (173, 2), (291, 2), (293, 2)], [], [(0, 2), (1, 1), (2, 1), (4, 1), (6, 1), (8, 1), (9, 2), (24, 1), (25, 2), (57, 1), (58, 1), (63, 2), (64, 2), (117, 1), (120, 2), (172, 1), (173, 1), (174, 1), (291, 2), (293, 2)], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (7, 1), (8, 1), (10, 2), (24, 2), (25, 1), (57, 2), (58, 1), (63, 1), (64, 2), (172, 2), (173, 1), (293, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (7, 1), (8, 1), (10, 2), (24, 2), (25, 1), (57, 2), (58, 1), (63, 1), (64, 2), (172, 2), (173, 1), (293, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 1), (7, 2), (9, 2), (10, 1), (24, 2), (25, 1), (57, 2), (63, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [(0, 2), (1, 2), (2, 1), (4, 1), (8, 1), (9, 2), (24, 2), (25, 1), (57, 2), (63, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (5, 2), (6, 1), (7, 2), (9, 2), (10, 1), (15, 1), (24, 2), (25, 1), (57, 2), (63, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (7, 1), (8, 1), (10, 2), (24, 2), (25, 1), (57, 1), (58, 1), (63, 2), (64, 1), (66, 1), (172, 2), (173, 1), (293, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 1), (7, 2), (9, 2), (10, 1), (24, 2), (25, 1), (57, 2), (60, 2), (63, 1), (65, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [(0, 2), (1, 2), (2, 2), (4, 1), (5, 2), (6, 1), (7, 2), (10, 1), (14, 2), (24, 2), (25, 1), (57, 1), (63, 2), (64, 2), (73, 1), (117, 1), (120, 2), (172, 1), (173, 2), (291, 2), (293, 2)], [], [], [(1, 2), (2, 1), (3, 1), (4, 1), (5, 2), (7, 2), (8, 1), (9, 2), (10, 1), (14, 2), (24, 2), (25, 1), (57, 1), (63, 2), (117, 1), (120, 1), (130, 1), (172, 1), (173, 2), (291, 2), (293, 2)], [], [], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 2), (8, 2), (10, 1), (24, 1), (25, 2), (63, 2), (64, 1), (172, 2), (173, 1), (293, 2), (314, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (6, 1), (9, 1), (14, 2), (24, 2), (25, 1), (44, 1), (57, 2), (58, 2), (63, 1), (64, 1), (117, 2), (120, 1), (172, 2), (173, 1), (291, 1), (293, 2)], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (8, 2), (9, 1), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (99, 1), (117, 2), (120, 1), (172, 2), (173, 1), (291, 1), (293, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (9, 1), (14, 2), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (64, 1), (117, 2), (157, 1), (172, 2), (173, 1), (291, 1), (293, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (9, 1), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (64, 1), (172, 2), (173, 1), (293, 2), (392, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (7, 2), (8, 2), (9, 1), (10, 1), (14, 2), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (64, 1), (172, 1), (173, 1), (216, 1)], [], [(0, 2), (1, 2), (3, 2), (5, 1), (6, 1), (7, 1), (10, 2), (14, 1), (24, 2), (25, 1), (58, 1), (64, 2), (120, 1), (130, 2), (293, 2), (470, 1)], [(0, 2), (3, 2), (5, 1), (7, 1), (8, 1), (10, 2), (57, 1), (63, 2), (117, 2), (120, 1), (291, 1), (293, 2)], [(0, 2), (3, 2), (5, 1), (7, 1), (9, 1), (10, 2), (57, 1), (64, 2), (117, 2), (120, 1), (291, 1), (293, 2)], [(2, 2), (5, 1), (6, 2), (7, 1), (8, 1), (10, 2), (114, 1), (117, 2), (291, 1), (293, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb5 : List (List (Nat × Nat)) := [[(0, 1), (6, 2), (12, 2), (24, 2), (25, 1), (34, 2), (63, 1), (66, 2), (67, 1), (72, 1), (121, 2)], [], [], [], [], [], [(0, 2), (6, 1), (12, 1), (15, 1), (24, 2), (25, 1), (34, 1), (63, 2), (66, 2), (67, 1), (72, 1), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (6, 1), (7, 1), (12, 1), (15, 1), (24, 2), (25, 1), (34, 1), (63, 2), (66, 2), (67, 1), (71, 2), (72, 1), (74, 1), (121, 2)], [(0, 2), (6, 1), (12, 1), (15, 1), (24, 2), (25, 1), (34, 1), (63, 2), (65, 2), (66, 1), (67, 2), (68, 1), (72, 2), (121, 1)], [(0, 1), (1, 1), (6, 1), (7, 2), (12, 2), (19, 1), (24, 2), (25, 1), (34, 1), (63, 2), (66, 2), (67, 2), (72, 1), (121, 1)], [(0, 2), (6, 1), (12, 1), (24, 2), (25, 2), (34, 1), (63, 2), (66, 1), (67, 2), (72, 2), (121, 1)], [(0, 1), (6, 2), (12, 2), (18, 2), (24, 2), (25, 1), (34, 2), (63, 1), (66, 2), (67, 1), (72, 1), (75, 1), (121, 2)], [(0, 2), (1, 2), (6, 1), (7, 1), (12, 1), (15, 1), (19, 2), (24, 2), (25, 1), (34, 2), (63, 2), (64, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (77, 1), (121, 2)], [(0, 1), (6, 1), (12, 2), (24, 2), (25, 1), (34, 2), (63, 2), (66, 2), (67, 1), (72, 1), (121, 2)], [], [], [], [], [], [], [], [], [(0, 1), (1, 2), (6, 2), (7, 1), (12, 2), (15, 2), (34, 2), (63, 1), (64, 1), (65, 2), (66, 1), (68, 1), (71, 2), (72, 2), (74, 1), (127, 2), (131, 1)], [], [], [], [], [], [], [], [], [(0, 2), (6, 2), (7, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1), (63, 1), (65, 1), (67, 2), (68, 2), (71, 2), (74, 1), (121, 1), (127, 2), (131, 1)], [(1, 1), (6, 2), (7, 2), (24, 2), (25, 1), (34, 1), (63, 1), (65, 1), (67, 1), (68, 2), (71, 1), (74, 2), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 1), (3, 1), (6, 2), (7, 2), (9, 2), (12, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 1), (66, 1), (67, 1), (68, 2), (71, 1), (72, 2), (74, 2), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (6, 2), (7, 1), (12, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (72, 2), (74, 1), (121, 2), (127, 1), (131, 2)], [(0, 2), (1, 2), (6, 2), (7, 1), (12, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 1), (66, 1), (67, 1), (68, 2), (71, 2), (72, 2), (74, 1), (121, 2), (127, 1), (131, 2)], [(0, 2), (1, 1), (6, 2), (7, 2), (12, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 2), (66, 1), (68, 1), (71, 1), (72, 2), (74, 2), (127, 1), (131, 2)], [(0, 2), (1, 1), (6, 2), (7, 2), (9, 2), (12, 1), (14, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 2), (66, 2), (68, 1), (71, 1), (72, 1), (74, 2), (127, 1), (131, 2)], [(6, 2), (9, 2), (15, 1), (19, 2), (21, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (127, 1), (131, 2)], [(0, 1), (1, 1), (6, 1), (7, 2), (12, 2), (34, 2), (63, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 2), (72, 1), (74, 1), (121, 1), (127, 1), (131, 2)], [(0, 1), (1, 1), (6, 1), (7, 2), (12, 2), (34, 2), (63, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 1), (72, 1), (74, 2), (121, 1), (127, 2), (131, 1)], [(0, 1), (1, 2), (6, 1), (7, 1), (15, 2), (34, 2), (63, 2), (65, 2), (66, 2), (68, 1), (71, 2), (72, 1), (74, 1), (127, 2), (131, 1)], [(0, 1), (1, 2), (6, 1), (7, 1), (9, 1), (12, 2), (15, 2), (34, 2), (63, 2), (65, 2), (66, 1), (68, 1), (71, 2), (72, 2), (74, 1), (127, 2), (131, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [(0, 2), (1, 2), (7, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (74, 1), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (7, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1), (65, 2), (67, 1), (68, 2), (71, 2), (74, 1), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (7, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1), (65, 1), (67, 2), (68, 2), (71, 2), (74, 1), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (7, 1), (9, 1), (12, 1), (14, 2), (15, 2), (24, 2), (25, 1), (34, 1), (65, 2), (67, 1), (68, 1), (71, 2), (73, 1), (74, 1), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (7, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (72, 2), (74, 2), (121, 2), (127, 2), (131, 1)], [(1, 1), (7, 2), (19, 2), (24, 2), (25, 1), (34, 1), (65, 1), (67, 1), (68, 2), (71, 1), (74, 2), (80, 1), (121, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (7, 1), (9, 1), (12, 1), (14, 2), (15, 2), (24, 2), (25, 1), (34, 1), (65, 2), (67, 1), (68, 1), (71, 2), (74, 1), (121, 2), (127, 2), (130, 1), (131, 1)], [(0, 2), (1, 2), (7, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1), (65, 2), (66, 1), (67, 1), (68, 1), (71, 2), (72, 2), (74, 1), (121, 2), (127, 2), (131, 2)], [(1, 1), (7, 2), (19, 2), (24, 2), (25, 1), (34, 1), (65, 1), (67, 1), (68, 2), (71, 2), (74, 1), (121, 2), (127, 1), (131, 2), (137, 1)], [(0, 1), (1, 1), (6, 2), (7, 2), (12, 2), (15, 1), (24, 2), (25, 1), (34, 2), (51, 1), (65, 1), (67, 2), (68, 2), (71, 1), (74, 2), (121, 1), (127, 1), (131, 2)], [], [], [(0, 1), (1, 1), (7, 2), (12, 2), (15, 1), (24, 2), (25, 1), (34, 2), (64, 2), (65, 1), (67, 2), (68, 2), (71, 1), (74, 2), (99, 1), (121, 1), (127, 2), (131, 1)], [(1, 2), (7, 1), (9, 1), (14, 2), (15, 1), (24, 2), (25, 1), (34, 2), (64, 2), (65, 1), (67, 2), (68, 2), (71, 2), (74, 1), (121, 1), (127, 1), (131, 2), (157, 1)], [(1, 1), (7, 2), (24, 1), (25, 2), (64, 2), (65, 2), (66, 1), (67, 1), (68, 1), (71, 1), (72, 2), (74, 2), (121, 2), (127, 1), (131, 2), (392, 1)], [(0, 1), (7, 2), (9, 1), (12, 2), (14, 2), (15, 2), (24, 2), (25, 1), (34, 2), (64, 2), (65, 1), (67, 1), (68, 2), (71, 1), (74, 2), (121, 2), (127, 1), (131, 2), (216, 1)], [(0, 1), (7, 2), (12, 2), (15, 2), (24, 2), (25, 1), (34, 2), (64, 2), (65, 1), (66, 1), (67, 1), (68, 2), (71, 1), (72, 2), (74, 2), (121, 2), (127, 1), (131, 2), (274, 1)], [(0, 1), (1, 2), (6, 1), (7, 1), (9, 2), (12, 2), (14, 1), (15, 2), (18, 1), (34, 2), (63, 2), (66, 1), (67, 2), (71, 2), (72, 2), (74, 1), (75, 2), (127, 2), (130, 2), (131, 1), (470, 1)], [], [], [], [], [], [], [], [(1, 1), (6, 1), (7, 2), (15, 2), (24, 2), (25, 1), (66, 2), (67, 1), (71, 1), (72, 1), (74, 2), (121, 2)], [(13, 1), (15, 2), (24, 2), (25, 1), (65, 1), (68, 2)], [(0, 1), (1, 2), (7, 1), (12, 2), (18, 1), (19, 2), (24, 2), (25, 1), (66, 2), (72, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb6 : List (List (Nat × Nat)) := [[], [(8, 1), (9, 2), (18, 1), (24, 2), (25, 1), (34, 2), (60, 2), (63, 2), (65, 1), (75, 2), (117, 1)], [], [], [], [(6, 1), (9, 2), (12, 2), (14, 1), (15, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (60, 2), (63, 2), (65, 1), (75, 1), (117, 2), (127, 2), (131, 1)], [], [(8, 1), (9, 2), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 2), (65, 2), (75, 1), (117, 2)], [(8, 1), (9, 1), (11, 1), (14, 1), (15, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (60, 2), (63, 2), (65, 1), (75, 1), (117, 1)], [(6, 1), (7, 2), (8, 1), (9, 2), (18, 1), (19, 1), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (75, 2), (117, 2)], [(8, 2), (9, 1), (18, 1), (24, 2), (25, 2), (34, 1), (60, 1), (63, 1), (65, 2), (75, 2), (117, 2)], [], [], [], [(8, 1), (9, 2), (18, 2), (24, 2), (25, 1), (34, 2), (60, 2), (63, 2), (65, 1), (75, 1), (117, 1)], [(8, 1), (9, 1), (11, 1), (14, 1), (16, 2), (18, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 2), (60, 2), (63, 2), (65, 1), (75, 1), (117, 1)], [(6, 1), (8, 1), (9, 2), (18, 1), (24, 2), (25, 1), (34, 2), (60, 2), (63, 1), (65, 1), (75, 2), (117, 1)], [(8, 2), (9, 2), (18, 1), (24, 2), (25, 1), (34, 2), (60, 2), (63, 1), (65, 1), (75, 2), (117, 1)], [], [], [], [], [], [(6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (18, 1), (34, 2), (60, 2), (65, 1), (71, 1), (75, 2), (117, 1), (127, 2), (131, 1)], [], [], [], [], [], [(7, 1), (9, 1), (11, 1), (12, 2), (14, 2), (15, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (71, 2), (75, 1), (127, 2), (131, 1)], [(6, 2), (7, 1), (8, 1), (11, 2), (14, 2), (15, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (58, 1), (71, 2), (72, 2), (75, 1), (117, 2), (127, 2), (131, 1)], [], [], [], [(6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (12, 1), (18, 2), (24, 2), (25, 1), (34, 1), (71, 2), (75, 1), (127, 1), (131, 2)], [(6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (71, 2), (75, 1), (117, 2), (127, 1), (131, 2)], [(7, 1), (9, 1), (11, 1), (12, 2), (14, 2), (15, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (71, 2), (75, 1), (127, 1), (131, 2)], [(6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (12, 1), (15, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (71, 2), (75, 1), (127, 1), (131, 2)], [(7, 2), (8, 2), (11, 2), (12, 1), (19, 2), (21, 1), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 2), (117, 2), (127, 1), (131, 2)], [(7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (18, 1), (34, 2), (60, 2), (63, 2), (65, 1), (71, 2), (75, 2), (117, 1), (127, 1), (131, 2)], [], [], [], [(6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (18, 1), (34, 2), (63, 2), (65, 1), (71, 1), (75, 2), (127, 2), (131, 1)], [(7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (18, 1), (34, 2), (60, 2), (63, 2), (65, 1), (71, 1), (72, 1), (75, 2), (117, 1), (127, 2), (131, 1)], [(6, 2), (7, 2), (8, 2), (9, 1), (11, 1), (12, 2), (18, 1), (34, 2), (60, 2), (63, 2), (64, 1), (65, 1), (71, 1), (75, 2), (117, 1), (127, 2), (131, 1)], [], [], [], [], [], [], [], [], [], [], [(6, 2), (7, 2), (11, 2), (12, 2), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 1), (75, 1), (117, 2), (127, 2), (131, 1)], [(7, 1), (8, 2), (10, 1), (11, 2), (12, 2), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 1), (75, 1), (117, 2), (127, 2), (131, 1)], [(6, 2), (7, 2), (9, 1), (11, 1), (12, 2), (14, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 1), (75, 1), (117, 2), (127, 2), (131, 1)], [(7, 2), (8, 2), (9, 1), (11, 1), (12, 1), (17, 1), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 1), (75, 1), (117, 2), (127, 2), (131, 1)], [(6, 2), (7, 2), (8, 2), (11, 2), (12, 2), (19, 2), (22, 1), (24, 2), (25, 1), (34, 1), (60, 1), (63, 2), (65, 2), (71, 1), (117, 2), (127, 2), (131, 1)], [], [], [], [], [], [], [(6, 2), (7, 2), (9, 1), (11, 1), (12, 2), (14, 2), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 1), (75, 1), (117, 2), (127, 2), (130, 1), (131, 1)], [(7, 2), (8, 2), (9, 1), (11, 1), (12, 1), (18, 2), (24, 2), (25, 1), (34, 1), (60, 1), (63, 1), (65, 2), (71, 1), (75, 1), (117, 2), (127, 2), (131, 2)], [(8, 1), (9, 1), (11, 1), (14, 1), (15, 1), (16, 2), (19, 2), (24, 2), (25, 1), (34, 1), (58, 2), (60, 2), (63, 2), (65, 1), (71, 1), (72, 1), (117, 2), (127, 1), (131, 2), (137, 1)], [(7, 1), (11, 2), (12, 2), (17, 2), (18, 1), (24, 2), (25, 1), (34, 2), (51, 1), (60, 2), (63, 2), (65, 1), (71, 2), (75, 2), (117, 1), (127, 1), (131, 2)], [], [(6, 2), (7, 2), (11, 2), (12, 2), (15, 1), (16, 2), (18, 1), (24, 2), (25, 1), (34, 2), (44, 1), (71, 1), (75, 2), (127, 2), (131, 1)], [], [(7, 2), (8, 2), (11, 2), (12, 1), (14, 1), (15, 2), (16, 1), (18, 1), (24, 2), (25, 1), (34, 2), (57, 2), (60, 1), (63, 1), (65, 2), (71, 1), (75, 2), (127, 1), (131, 2), (157, 1)], [(7, 1), (8, 1), (11, 1), (12, 2), (14, 2), (15, 2), (16, 1), (24, 1), (25, 2), (60, 2), (63, 2), (65, 1), (71, 2), (72, 2), (117, 1), (127, 1), (131, 2), (392, 1)], [(7, 2), (8, 2), (11, 2), (12, 1), (14, 1), (15, 2), (16, 1), (18, 1), (24, 2), (25, 1), (34, 2), (57, 2), (60, 1), (63, 1), (65, 2), (71, 1), (75, 2), (127, 1), (131, 2), (216, 1)], [(6, 1), (7, 2), (8, 1), (11, 2), (14, 2), (15, 2), (16, 1), (18, 1), (24, 2), (25, 1), (34, 2), (57, 2), (60, 1), (63, 1), (65, 2), (71, 1), (75, 2), (127, 1), (131, 2), (274, 1)], [(6, 1), (7, 2), (16, 1), (17, 2), (19, 1), (20, 2), (34, 2), (60, 2), (63, 2), (65, 1), (71, 1), (117, 1), (127, 2), (130, 2), (131, 1), (470, 1)], [], [], [], [], [], [], [(6, 2), (8, 2), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (24, 2), (25, 1), (57, 1), (60, 2), (63, 2), (65, 1), (127, 1), (131, 2)], [(8, 1), (9, 2), (24, 2), (25, 1)], [(11, 2), (13, 1), (14, 2), (15, 2), (16, 1), (24, 2), (25, 1), (60, 2), (65, 1), (117, 1)], [(6, 2), (7, 1), (8, 1), (9, 2), (18, 1), (19, 2), (24, 2), (25, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb7 : List (List (Nat × Nat)) := [[], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (14, 2), (16, 1), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2), (57, 2), (114, 1)], [], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (12, 2), (14, 2), (15, 1), (16, 1), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (60, 1), (71, 2), (74, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (14, 2), (15, 1), (16, 1), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (14, 2), (16, 1), (19, 2), (20, 2), (24, 2), (25, 1), (34, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (14, 2), (16, 1), (19, 1), (20, 2), (24, 2), (25, 2), (34, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (14, 1), (16, 2), (18, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 2), (75, 1)], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 2)], [], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (14, 2), (16, 1), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2)], [], [], [], [], [], [(1, 2), (2, 1), (3, 2), (4, 1), (12, 2), (14, 2), (16, 1), (19, 1), (20, 2), (34, 2), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [], [], [], [(0, 1), (2, 2), (5, 2), (12, 2), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 2), (74, 1), (114, 1), (121, 1), (127, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (15, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 2), (74, 1), (114, 1), (127, 2)], [(1, 1), (5, 2), (12, 2), (15, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (58, 1), (60, 2), (71, 2), (74, 1), (114, 1), (127, 2)], [], [(0, 1), (5, 2), (12, 1), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [(0, 1), (2, 2), (3, 1), (5, 2), (12, 1), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (15, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 1), (14, 1), (15, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (12, 1), (19, 2), (21, 1), (24, 2), (25, 1), (34, 1), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (12, 1), (14, 2), (16, 1), (19, 1), (20, 2), (34, 2), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [], [], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (12, 2), (14, 2), (16, 1), (19, 1), (20, 2), (34, 2), (57, 2), (60, 2), (71, 2), (74, 1), (114, 1), (117, 1), (127, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (12, 2), (14, 2), (16, 1), (19, 1), (20, 2), (34, 2), (57, 2), (58, 2), (71, 2), (74, 1), (114, 1), (115, 1), (127, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (12, 2), (14, 2), (16, 1), (19, 1), (20, 2), (34, 2), (57, 2), (71, 2), (74, 1), (114, 1), (120, 1), (127, 1)], [], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [(0, 1), (1, 1), (2, 2), (5, 2), (12, 2), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (12, 2), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 1), (14, 1), (16, 2), (17, 1), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (19, 2), (22, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (73, 1), (74, 1), (114, 2), (127, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 1), (14, 1), (16, 2), (19, 2), (20, 1), (24, 2), (25, 1), (34, 1), (57, 1), (71, 2), (74, 2), (114, 2), (127, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (12, 1), (14, 1), (15, 1), (16, 2), (19, 2), (24, 2), (25, 1), (34, 1), (57, 1), (58, 2), (60, 1), (71, 1), (74, 2), (80, 1), (114, 2), (127, 1)], [], [], [], [(0, 2), (1, 2), (5, 2), (12, 2), (14, 2), (16, 1), (17, 2), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2), (51, 1), (57, 2), (71, 1), (74, 2), (114, 1), (127, 2)], [], [(0, 1), (5, 2), (12, 2), (14, 2), (15, 1), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2), (44, 1), (57, 1), (71, 2), (74, 1), (114, 2), (127, 1)], [(0, 2), (1, 2), (5, 2), (14, 1), (15, 2), (16, 2), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2), (60, 1), (71, 1), (74, 2), (99, 1), (114, 2), (127, 1)], [], [(2, 2), (3, 1), (5, 1), (12, 1), (14, 2), (15, 2), (16, 1), (24, 1), (25, 2), (57, 1), (71, 1), (74, 2), (114, 2), (120, 2), (127, 2), (392, 1)], [(0, 2), (1, 2), (5, 2), (12, 1), (15, 2), (16, 2), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2), (60, 1), (71, 1), (74, 2), (114, 2), (127, 1), (216, 1)], [(0, 2), (1, 2), (5, 2), (14, 1), (15, 2), (16, 2), (19, 1), (20, 2), (24, 2), (25, 1), (34, 2), (60, 1), (71, 1), (74, 2), (114, 2), (127, 1), (274, 1)], [(1, 2), (2, 1), (17, 2), (18, 1), (34, 2), (57, 1), (71, 2), (74, 1), (75, 2), (114, 2), (127, 1), (470, 1)], [], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (12, 1), (14, 2), (15, 2), (16, 1), (24, 2), (25, 1), (57, 1), (60, 2), (71, 1), (74, 2)], [], [(2, 1), (5, 2), (13, 1), (14, 2), (15, 2), (16, 1), (24, 2), (25, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (18, 1), (19, 2), (24, 2), (25, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb8 : List (List (Nat × Nat)) := [[], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (9, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (24, 2), (25, 1), (34, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (8, 1), (9, 2), (24, 2), (25, 1), (34, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 2), (9, 2), (19, 1), (24, 2), (25, 1), (34, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (9, 1), (24, 2), (25, 2), (34, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (9, 1), (19, 2), (24, 2), (25, 1), (34, 2), (65, 2), (68, 1), (77, 1)], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (19, 2), (20, 1), (24, 2), (25, 1), (34, 2)], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 2), (9, 2), (24, 2), (25, 1), (34, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (7, 1), (8, 1), (9, 2), (24, 2), (25, 1), (34, 2)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (5, 1), (7, 1), (9, 1), (11, 1), (34, 2), (60, 1), (65, 2), (68, 1), (293, 2)], [], [], [(2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 1), (11, 1), (24, 2), (25, 1), (34, 1), (60, 2), (65, 2), (67, 2), (68, 1), (121, 1), (293, 1)], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 2), (24, 2), (25, 1), (34, 1), (58, 1), (60, 1), (65, 2), (68, 1), (293, 1)], [(0, 1), (1, 1), (5, 1), (9, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 2), (65, 1), (68, 2), (293, 1)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (9, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 2), (65, 1), (68, 2), (293, 1)], [(0, 1), (4, 1), (5, 1), (9, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 2), (65, 1), (68, 2), (293, 1)], [], [(0, 1), (1, 1), (5, 1), (7, 2), (9, 2), (11, 2), (24, 2), (25, 1), (34, 1), (60, 2), (65, 1), (68, 2), (293, 1)], [], [], [(0, 2), (5, 1), (9, 1), (11, 2), (19, 2), (21, 1), (24, 2), (25, 1), (34, 1), (60, 2), (65, 1), (68, 2), (293, 1)], [], [], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 1), (11, 2), (34, 2), (60, 2), (65, 2), (68, 1), (293, 1)], [], [], [(0, 2), (1, 2), (5, 2), (7, 1), (9, 1), (11, 1), (34, 2), (60, 1), (65, 2), (68, 1), (117, 1), (293, 1)], [], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1), (11, 1), (19, 1), (20, 2), (34, 2), (60, 1), (65, 2), (68, 1), (174, 1), (293, 1)], [(0, 2), (1, 2), (2, 1), (5, 1), (7, 1), (9, 1), (11, 1), (19, 1), (20, 2), (34, 2), (60, 1), (65, 2), (68, 1), (236, 1), (293, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (11, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 2), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 1), (11, 2), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 2), (19, 2), (22, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 2), (68, 2), (293, 2)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (7, 2), (9, 2), (11, 1), (24, 2), (25, 1), (34, 1), (60, 1), (65, 1), (67, 1), (68, 2), (293, 2)], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (11, 1), (19, 2), (24, 2), (25, 1), (34, 1), (58, 2), (60, 2), (65, 1), (68, 2), (80, 1), (293, 2)], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (11, 1), (19, 2), (24, 2), (25, 1), (34, 1), (58, 2), (60, 2), (65, 1), (68, 2), (137, 1), (293, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (24, 2), (25, 1), (34, 2), (51, 1), (60, 2), (65, 1), (68, 2), (293, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (9, 2), (11, 2), (24, 2), (25, 1), (34, 2), (44, 1), (60, 1), (65, 2), (68, 1), (293, 2)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (7, 1), (9, 1), (11, 1), (24, 2), (25, 1), (34, 2), (57, 2), (60, 2), (65, 1), (68, 2), (99, 1), (293, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 1), (9, 1), (11, 2), (24, 2), (25, 1), (34, 2), (57, 2), (60, 2), (65, 1), (68, 2), (157, 1), (293, 2)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (9, 1), (11, 2), (24, 2), (25, 1), (34, 2), (57, 2), (60, 2), (65, 1), (68, 2), (216, 1), (293, 2)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (9, 1), (11, 2), (24, 2), (25, 1), (34, 2), (57, 2), (60, 2), (65, 1), (68, 2), (274, 1), (293, 2)], [(1, 2), (3, 1), (4, 2), (5, 1), (7, 1), (19, 1), (20, 2), (34, 2), (60, 1), (67, 2), (293, 2), (470, 1)], [], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (24, 2), (25, 1), (57, 1), (60, 2), (65, 1), (68, 2)], [(0, 1), (5, 2), (8, 1), (9, 2), (24, 2), (25, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (7, 1), (9, 2), (18, 1), (19, 2), (24, 2), (25, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb9 : List (List (Nat × Nat)) := [[], [], [], [(0, 1), (1, 1), (5, 1), (7, 2), (9, 2), (11, 2), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 2), (57, 2), (172, 1)], [], [(0, 2), (1, 2), (5, 2), (7, 1), (11, 1), (12, 2), (15, 2), (24, 2), (25, 1), (34, 1), (58, 1), (66, 1), (72, 2)], [(0, 2), (1, 2), (2, 1), (5, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1)], [(1, 1), (3, 1), (4, 2), (5, 2), (7, 2), (11, 2), (12, 1), (15, 2), (24, 2), (25, 1), (34, 1)], [(0, 2), (1, 2), (5, 2), (7, 1), (9, 1), (11, 1), (12, 2), (15, 2), (24, 2), (25, 1), (34, 1)], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (11, 2), (12, 2), (13, 2), (15, 2), (25, 1), (34, 1)], [], [], [], [], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (11, 1), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 2)], [], [(0, 1), (1, 1), (5, 1), (7, 2), (9, 2), (11, 2), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (7, 2), (11, 1), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 2)], [], [(1, 2), (2, 2), (5, 2), (7, 1), (11, 2), (12, 2), (15, 1), (24, 2), (25, 1), (34, 2)], [], [], [], [], [(0, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 2), (12, 2), (13, 1), (24, 2), (25, 1), (34, 2), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 2), (11, 1), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 1), (57, 2), (58, 1), (67, 1), (121, 2), (172, 1), (173, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (8, 1), (9, 1), (11, 1), (12, 1), (13, 1), (24, 1), (25, 2), (34, 1), (57, 2), (60, 1), (66, 2), (67, 2), (72, 1), (121, 1), (172, 1), (173, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 2), (9, 1), (12, 2), (13, 1), (24, 1), (25, 2), (34, 1), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 1), (8, 2), (12, 1), (13, 2), (34, 1), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [(0, 1), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 1), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [(0, 1), (2, 1), (6, 2), (8, 1), (9, 1), (12, 1), (13, 2), (34, 1), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 2), (2, 1), (6, 2), (7, 1), (8, 1), (13, 2), (14, 1), (34, 1), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (11, 2), (13, 1), (15, 2), (24, 2), (25, 1), (34, 2), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (15, 2), (24, 2), (25, 1), (34, 2), (57, 2), (58, 1), (66, 2), (67, 2), (72, 1), (121, 1), (172, 1), (173, 2)], [], [], [(0, 2), (1, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (12, 2), (13, 1), (15, 2), (24, 2), (25, 1), (34, 2), (57, 2), (66, 2), (67, 2), (72, 1), (115, 1), (121, 1), (172, 1), (173, 2)], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (8, 2), (11, 2), (12, 2), (13, 1), (24, 2), (25, 1), (34, 2), (57, 2), (58, 2), (60, 2), (67, 1), (121, 2), (172, 1), (173, 1), (174, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 2), (6, 1), (7, 2), (8, 2), (34, 2), (57, 2), (58, 2), (67, 1), (121, 2), (172, 1), (173, 1), (181, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 2), (11, 1), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 1), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [(0, 2), (1, 2), (2, 2), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (11, 2), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 1), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (34, 1), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (10, 1), (11, 1), (13, 2), (15, 1), (34, 1), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (13, 2), (15, 1), (17, 1), (34, 1), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (15, 1), (24, 1), (25, 2), (34, 1), (57, 1), (58, 2), (66, 1), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (34, 1), (57, 1), (58, 2), (67, 2), (121, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1), (13, 2), (15, 1), (34, 1), (57, 1), (60, 2), (66, 1), (67, 1), (71, 1), (72, 2), (121, 2), (172, 2), (173, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1), (13, 2), (15, 1), (34, 1), (57, 1), (60, 2), (66, 1), (67, 1), (72, 2), (121, 2), (127, 1), (172, 2), (173, 1)], [], [(0, 1), (1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (9, 1), (11, 2), (13, 2), (15, 2), (17, 2), (34, 2), (51, 1), (57, 2), (58, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [], [(0, 1), (6, 1), (8, 1), (12, 2), (13, 2), (14, 2), (34, 2), (44, 1), (57, 1), (58, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [(0, 2), (2, 2), (6, 1), (8, 2), (9, 1), (12, 2), (13, 2), (34, 2), (66, 1), (67, 1), (72, 2), (99, 1), (121, 2), (172, 2), (173, 1)], [(0, 1), (1, 1), (2, 2), (6, 1), (7, 2), (8, 2), (9, 2), (13, 2), (14, 2), (34, 2), (66, 1), (67, 1), (72, 2), (121, 2), (157, 1), (172, 2), (173, 1)], [(2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 1), (12, 2), (13, 2), (15, 2), (24, 2), (25, 1), (57, 1), (58, 2), (66, 1), (67, 1), (72, 2), (121, 2), (172, 2), (173, 1), (392, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 1), (9, 1), (12, 1), (24, 2), (25, 1), (34, 2), (66, 1), (67, 1), (72, 2), (121, 2), (172, 2), (173, 1), (274, 1)], [(0, 2), (1, 1), (5, 1), (7, 2), (9, 2), (11, 2), (12, 1), (13, 2), (15, 1), (17, 2), (24, 1), (25, 2), (34, 2), (57, 1), (58, 2), (121, 2), (172, 2), (173, 1), (470, 1)], [], [], [], [], [], [], [(9, 1), (13, 2), (57, 1), (58, 2), (66, 2), (72, 1)], [(1, 1), (2, 2), (7, 2), (8, 1), (12, 1), (13, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb10 : List (List (Nat × Nat)) := [[], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (13, 1), (14, 2), (15, 1), (16, 2), (34, 2), (57, 2), (233, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 1), (9, 1), (14, 1), (15, 2), (16, 1), (34, 1), (60, 1), (63, 1), (71, 2)], [(0, 2), (1, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (15, 2), (16, 1), (34, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 2), (15, 2), (16, 1), (34, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 1), (14, 1), (15, 2), (16, 1), (34, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (13, 2), (14, 1), (15, 2), (16, 1), (18, 1), (34, 1)], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (9, 2), (13, 1), (14, 2), (15, 1), (16, 2), (34, 2), (63, 1)], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 2), (9, 2), (13, 1), (14, 2), (15, 1), (16, 2), (34, 2)], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (13, 1), (14, 2), (15, 1), (16, 2), (34, 2)], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2)], [], [], [], [], [], [(0, 2), (1, 1), (2, 2), (3, 1), (5, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (5, 2), (6, 1), (7, 1), (8, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 1), (57, 2), (60, 1), (63, 1), (64, 1), (71, 2), (121, 2), (233, 1), (234, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (5, 2), (7, 1), (8, 2), (9, 1), (13, 1), (14, 2), (15, 2), (16, 1), (18, 2), (19, 1), (34, 1), (57, 2), (60, 1), (63, 1), (64, 1), (121, 1), (233, 1), (234, 2)], [(0, 2), (2, 2), (3, 2), (5, 2), (6, 1), (8, 1), (9, 2), (13, 2), (14, 1), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 2), (58, 1), (63, 1), (64, 1), (121, 1), (233, 1), (234, 2)], [(0, 1), (3, 2), (4, 2), (7, 1), (8, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 1), (57, 2), (60, 1), (63, 2), (64, 1), (71, 2), (121, 1), (233, 1), (234, 2)], [(2, 1), (3, 2), (4, 2), (6, 1), (9, 2), (13, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 2), (60, 1), (63, 2), (64, 1), (71, 2), (121, 1), (233, 1), (234, 2)], [], [(0, 1), (1, 2), (3, 2), (7, 1), (8, 1), (9, 1), (13, 1), (18, 2), (19, 1), (34, 1), (57, 2), (60, 1), (63, 2), (64, 1), (71, 2), (121, 1), (233, 1), (234, 2)], [], [(4, 2), (8, 1), (9, 2), (12, 1), (13, 2), (14, 1), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 2), (60, 1), (63, 2), (64, 1), (71, 2), (121, 1), (233, 1), (234, 2)], [], [], [], [], [], [(0, 2), (1, 1), (3, 1), (4, 1), (6, 2), (7, 2), (8, 2), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2), (57, 2), (60, 1), (63, 2), (64, 1), (71, 2), (121, 1), (233, 1), (234, 2)], [], [], [(0, 2), (1, 1), (3, 1), (4, 1), (6, 2), (7, 2), (9, 2), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2), (57, 2), (60, 1), (63, 1), (64, 2), (71, 2), (121, 1), (233, 1), (234, 2)], [], [], [(0, 1), (1, 1), (2, 1), (4, 1), (7, 2), (8, 2), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2), (57, 2), (60, 1), (63, 1), (64, 1), (71, 2), (120, 1), (121, 1), (233, 1), (234, 2)], [], [(0, 2), (1, 1), (4, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2), (57, 2), (60, 1), (63, 1), (64, 2), (71, 1), (121, 2), (233, 1), (234, 1), (236, 1)], [(4, 1), (6, 2), (9, 2), (14, 1), (15, 1), (16, 2), (18, 2), (19, 1), (34, 2), (57, 2), (60, 1), (63, 1), (64, 1), (71, 2), (121, 1), (181, 1), (233, 1), (234, 2)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (6, 1), (7, 1), (8, 1), (13, 1), (14, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [(0, 1), (1, 2), (3, 2), (4, 2), (6, 1), (7, 1), (8, 1), (13, 1), (14, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [(3, 2), (4, 2), (6, 2), (9, 1), (13, 2), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [], [(0, 1), (1, 2), (2, 2), (4, 2), (6, 1), (7, 1), (8, 1), (13, 2), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [], [(4, 1), (6, 1), (8, 1), (9, 1), (13, 2), (14, 2), (15, 2), (16, 2), (18, 1), (19, 2), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (7, 1), (8, 1), (13, 1), (14, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 1), (57, 1), (60, 2), (63, 2), (64, 1), (66, 1), (71, 1), (121, 2), (233, 2), (234, 1)], [(0, 1), (2, 2), (4, 1), (6, 1), (8, 1), (13, 2), (15, 1), (16, 2), (18, 1), (19, 2), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (65, 1), (71, 1), (121, 2), (233, 2), (234, 1)], [], [(4, 1), (6, 1), (9, 2), (13, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 1), (60, 2), (63, 2), (64, 1), (71, 1), (73, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 1), (8, 1), (9, 1), (13, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (57, 1), (60, 2), (63, 2), (64, 2), (71, 1), (120, 2), (121, 2), (130, 1), (233, 2), (234, 1)], [], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 1), (8, 2), (13, 2), (14, 2), (15, 1), (16, 2), (18, 2), (19, 1), (34, 2), (51, 1), (57, 2), (60, 1), (63, 2), (64, 1), (71, 2), (121, 1), (233, 1), (234, 2)], [], [(0, 2), (3, 1), (4, 1), (6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (16, 2), (18, 2), (19, 1), (34, 2), (44, 1), (57, 1), (60, 2), (63, 1), (64, 2), (71, 1), (121, 2), (233, 2), (234, 1)], [(2, 2), (3, 1), (5, 1), (8, 1), (9, 1), (12, 2), (13, 2), (14, 2), (15, 1), (16, 2), (18, 2), (19, 1), (34, 2), (63, 2), (64, 2), (99, 1), (121, 2), (233, 2), (234, 1)], [(2, 1), (3, 2), (5, 1), (6, 2), (8, 2), (9, 1), (13, 2), (14, 1), (15, 1), (16, 2), (18, 2), (19, 1), (34, 2), (63, 2), (64, 2), (121, 2), (157, 1), (233, 2), (234, 1)], [(1, 1), (2, 2), (3, 2), (6, 1), (7, 2), (9, 2), (13, 2), (14, 2), (18, 2), (19, 1), (57, 1), (60, 2), (63, 2), (64, 2), (71, 1), (120, 2), (121, 2), (233, 2), (234, 1), (392, 1)], [(0, 2), (2, 2), (3, 2), (5, 1), (7, 2), (8, 1), (9, 2), (15, 1), (16, 2), (18, 1), (19, 2), (34, 2), (63, 2), (64, 2), (121, 2), (216, 1), (233, 2), (234, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (13, 2), (14, 1), (15, 1), (16, 2), (34, 2), (57, 1), (60, 2), (64, 2), (71, 1), (120, 1), (121, 2), (130, 2), (233, 2), (234, 1), (470, 1)], [], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (13, 2), (57, 1), (60, 2), (63, 2), (71, 1)], [(0, 1), (2, 2), (8, 1), (9, 2), (13, 2), (14, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb11 : List (List (Nat × Nat)) := [[(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (9, 1), (13, 2), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (13, 2), (57, 2), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1), (114, 1)], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (13, 1), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (13, 1), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1)], [], [], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 1), (9, 1), (12, 2), (13, 2), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (77, 1)], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (13, 2), (63, 2), (64, 2), (65, 1), (66, 1), (67, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (13, 1), (18, 1), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1)], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (13, 2), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1)], [], [], [], [], [(2, 1), (5, 2), (6, 2), (13, 1), (14, 2), (16, 1), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (13, 1), (14, 1), (16, 2), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [(2, 1), (5, 2), (6, 2), (13, 1), (14, 1), (16, 2), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [(3, 1), (4, 2), (6, 2), (13, 1), (14, 1), (16, 2), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [], [], [], [], [(0, 1), (2, 1), (5, 2), (9, 2), (14, 2), (16, 1), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [(0, 1), (3, 1), (5, 2), (9, 2), (14, 2), (16, 1), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (9, 2), (12, 1), (14, 1), (16, 2), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (9, 2), (14, 2), (16, 2), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (9, 2), (14, 1), (16, 2), (21, 1), (57, 2), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 1), (115, 2)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (9, 2), (13, 1), (14, 2), (16, 1), (57, 2), (60, 1), (65, 2), (114, 1), (115, 2)], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (13, 1), (14, 2), (16, 1), (57, 1), (60, 2), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 2), (115, 1)], [(2, 1), (5, 2), (6, 2), (13, 1), (14, 2), (16, 1), (57, 1), (58, 1), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 2), (115, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (13, 1), (14, 2), (16, 1), (57, 1), (60, 2), (63, 2), (64, 1), (65, 1), (114, 2), (115, 1)], [], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (13, 1), (14, 1), (16, 2), (57, 1), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 2), (115, 1), (174, 1)], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (13, 1), (14, 1), (16, 2), (57, 1), (60, 1), (63, 2), (64, 1), (65, 1), (66, 2), (67, 1), (114, 2), (115, 1), (236, 1)], [(0, 1), (2, 2), (3, 1), (4, 1), (6, 2), (9, 1), (13, 1), (14, 1), (16, 2), (57, 1), (60, 2), (63, 2), (65, 1), (114, 2), (115, 1), (181, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (13, 2), (14, 1), (16, 2), (57, 2), (60, 1), (65, 2), (114, 1), (115, 2)], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (9, 2), (13, 2), (14, 2), (16, 1), (57, 2), (60, 1), (65, 2), (114, 1), (115, 2)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (9, 2), (10, 1), (13, 2), (14, 2), (16, 1), (57, 2), (60, 1), (65, 2), (114, 1), (115, 2)], [], [], [], [], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (9, 1), (13, 1), (14, 1), (16, 1), (57, 1), (60, 2), (66, 2), (67, 1), (73, 1), (114, 2), (115, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (14, 2), (16, 1), (57, 1), (60, 2), (63, 2), (65, 1), (71, 1), (114, 2), (115, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (14, 2), (16, 1), (57, 1), (60, 2), (63, 2), (65, 1), (80, 1), (114, 2), (115, 1)], [], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 1), (14, 1), (16, 2), (51, 1), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (114, 1), (115, 2)], [(0, 2), (3, 2), (4, 1), (5, 1), (7, 2), (9, 1), (14, 1), (16, 2), (57, 1), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (114, 2), (115, 1), (314, 1)], [], [(2, 1), (5, 2), (9, 1), (12, 2), (14, 2), (16, 1), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1), (99, 1), (114, 2), (115, 1)], [], [(0, 1), (3, 1), (4, 2), (5, 2), (9, 1), (13, 2), (14, 1), (16, 2), (57, 1), (58, 2), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1), (114, 2), (115, 1), (392, 1)], [(2, 1), (5, 2), (9, 1), (14, 1), (16, 1), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1), (114, 2), (115, 1), (216, 1)], [(2, 1), (5, 2), (9, 1), (12, 2), (14, 2), (16, 1), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1), (114, 2), (115, 1), (274, 1)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (9, 2), (57, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (114, 2), (115, 1)], [], [], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (57, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1)], [], [], [], [], [(9, 1), (16, 2), (60, 1), (65, 2), (115, 2), (130, 1)], [], [(2, 1), (5, 2), (65, 2), (66, 2), (67, 1), (68, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (65, 2), (67, 1)], [], [], [], [], [], [], [], [], [], []] + +def comb12 : List (List (Nat × Nat)) := [[(0, 1), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (8, 2), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (13, 1), (58, 2), (60, 2), (63, 2), (71, 1), (72, 1)], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (13, 1), (58, 1), (60, 2), (63, 2), (71, 1), (72, 2)], [], [], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (8, 2), (9, 2), (12, 1), (58, 1), (60, 2), (63, 1), (64, 1), (71, 1), (72, 2), (73, 2), (75, 1)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (58, 2), (60, 1), (63, 2), (71, 2), (72, 1)], [], [(3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 2), (11, 1), (12, 1), (15, 2), (20, 1), (58, 1), (60, 2), (63, 2), (71, 1), (72, 2)], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (58, 1), (60, 2), (63, 2), (71, 1), (72, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 1), (58, 1), (60, 2), (63, 2), (71, 1), (72, 2)], [], [], [(0, 1), (2, 1), (4, 1), (5, 1), (8, 2), (9, 2), (11, 1), (12, 2), (13, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [(0, 2), (3, 1), (5, 1), (6, 2), (9, 1), (11, 2), (12, 2), (13, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [], [(0, 1), (2, 1), (4, 1), (5, 1), (8, 2), (9, 1), (11, 2), (12, 2), (13, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [(0, 1), (3, 1), (5, 2), (6, 2), (9, 1), (11, 2), (12, 2), (13, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [], [(0, 2), (3, 2), (5, 1), (6, 1), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (58, 2), (60, 2), (71, 2), (72, 2), (120, 1), (293, 2)], [], [(0, 1), (1, 1), (2, 1), (3, 1), (5, 1), (6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [(0, 1), (2, 2), (4, 1), (5, 1), (8, 1), (9, 2), (11, 1), (12, 1), (13, 2), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [(0, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [], [(0, 1), (2, 1), (3, 1), (5, 1), (6, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [], [], [(0, 1), (2, 1), (3, 1), (5, 1), (6, 2), (8, 2), (9, 1), (11, 2), (12, 1), (13, 2), (21, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 1)], [], [], [], [], [], [(0, 1), (2, 2), (4, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (58, 1), (63, 2), (72, 1), (120, 1), (293, 2)], [(0, 2), (3, 1), (4, 1), (5, 1), (6, 2), (9, 1), (11, 1), (12, 2), (13, 1), (60, 1), (63, 2), (64, 1), (71, 2), (72, 1), (120, 1), (293, 2)], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (9, 1), (11, 2), (12, 1), (13, 1), (63, 2), (72, 1), (115, 1), (120, 1), (293, 2)], [(0, 2), (3, 1), (5, 1), (6, 2), (9, 1), (11, 2), (12, 2), (13, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 2), (293, 2)], [], [], [(0, 2), (3, 1), (5, 1), (6, 2), (9, 1), (11, 2), (12, 2), (13, 1), (60, 1), (63, 2), (71, 2), (72, 1), (120, 1), (181, 1), (293, 2)], [], [(0, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (60, 2), (71, 1), (72, 2), (120, 2), (293, 1)], [], [], [], [], [(0, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (15, 1), (60, 2), (71, 1), (72, 2), (120, 2), (293, 1)], [(0, 1), (2, 1), (3, 1), (5, 1), (6, 2), (9, 2), (11, 1), (12, 1), (13, 1), (17, 1), (60, 2), (71, 1), (72, 2), (120, 2), (293, 1)], [], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (58, 1), (63, 2), (65, 1), (120, 1), (293, 2)], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (60, 1), (63, 2), (64, 1), (66, 2), (67, 1), (71, 2), (72, 1), (120, 1), (293, 2)], [], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (60, 1), (63, 2), (71, 2), (72, 1), (80, 1), (120, 1), (293, 2)], [], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 2), (60, 1), (63, 2), (71, 2), (72, 1), (120, 1), (137, 1), (293, 2)], [(0, 1), (2, 1), (4, 1), (5, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 2), (17, 2), (51, 1), (58, 2), (63, 1), (120, 2), (293, 1)], [(0, 2), (2, 1), (4, 2), (8, 2), (9, 1), (11, 2), (12, 2), (13, 1), (17, 2), (58, 1), (60, 2), (63, 1), (71, 1), (120, 1), (293, 2), (314, 1)], [], [(0, 2), (2, 1), (4, 2), (6, 1), (9, 1), (11, 1), (12, 2), (13, 2), (57, 2), (58, 2), (63, 2), (72, 2), (99, 1), (120, 1), (293, 2)], [(0, 2), (3, 1), (4, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 2), (57, 2), (58, 2), (63, 2), (72, 2), (120, 1), (157, 1), (293, 2)], [], [(0, 2), (1, 2), (2, 1), (4, 2), (6, 1), (9, 1), (11, 2), (12, 2), (13, 2), (57, 2), (58, 2), (63, 2), (72, 2), (120, 1), (216, 1), (293, 2)], [(0, 2), (1, 2), (2, 1), (4, 2), (6, 1), (9, 1), (11, 2), (12, 2), (13, 2), (57, 2), (58, 2), (63, 2), (72, 2), (120, 1), (274, 1), (293, 2)], [], [(0, 2), (2, 1), (3, 2), (6, 1), (58, 1), (63, 2), (120, 1), (293, 2)], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (13, 2), (57, 1), (60, 2), (63, 2), (71, 1)], [], [], [], [], [(2, 1), (4, 1), (5, 2), (9, 1), (11, 2), (12, 2), (58, 1), (60, 2), (71, 1), (72, 2), (120, 2), (130, 1)], [(2, 1), (5, 2), (9, 1), (12, 2), (58, 1), (60, 2), (64, 2), (71, 1), (72, 2), (73, 1)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (58, 1), (60, 2), (64, 2), (66, 1), (71, 1), (72, 2)], [], [], [], [], [], [], [], [], [], []] + +def comb13 : List (List (Nat × Nat)) := [[(0, 1), (1, 2), (2, 2), (3, 2), (6, 2), (8, 1), (9, 1), (10, 1), (12, 2), (15, 2), (57, 2), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (233, 1), (234, 2)], [], [], [], [(3, 2), (4, 2), (6, 2), (8, 1), (9, 2), (12, 1), (15, 2), (57, 2), (58, 1), (60, 2), (65, 2), (66, 1), (67, 2), (68, 1), (72, 2), (233, 1)], [(2, 2), (3, 2), (4, 2), (5, 1), (6, 1), (8, 1), (9, 2), (12, 2), (15, 2), (24, 1), (25, 2), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1)], [], [], [], [], [(3, 2), (4, 2), (6, 1), (8, 1), (9, 2), (12, 1), (15, 2), (24, 1), (58, 1), (60, 2), (65, 2), (66, 1), (67, 2), (68, 1), (72, 2)], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 1), (8, 2), (9, 1), (12, 2), (15, 1), (58, 2), (60, 1), (66, 1), (67, 2), (72, 2), (74, 2), (75, 1)], [(3, 1), (6, 2), (8, 1), (9, 2), (12, 1), (15, 2), (58, 2), (60, 1), (66, 2), (67, 1), (72, 1), (77, 1)], [], [], [], [], [(3, 2), (4, 2), (6, 1), (8, 2), (9, 2), (12, 1), (15, 2), (58, 1), (60, 2), (65, 2), (66, 1), (67, 2), (68, 1), (72, 2)], [], [], [(3, 2), (4, 2), (6, 2), (8, 1), (9, 2), (12, 1), (15, 2), (58, 1), (60, 2), (65, 2), (66, 1), (67, 2), (68, 1), (72, 2)], [(3, 1), (4, 1), (6, 1), (8, 2), (9, 1), (12, 2), (15, 1), (58, 2), (60, 1), (66, 2), (67, 2), (72, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (8, 1), (9, 1), (10, 1), (12, 1), (24, 1), (25, 2), (57, 2), (58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (233, 1), (234, 2)], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 1), (8, 2), (10, 1), (12, 1), (24, 1), (25, 2), (57, 2), (58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (233, 1), (234, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (8, 2), (10, 1), (12, 1), (24, 1), (25, 2), (57, 2), (58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (233, 1), (234, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (5, 1), (6, 1), (8, 1), (9, 1), (10, 1), (15, 1), (24, 1), (25, 2), (57, 2), (60, 1), (65, 1), (67, 1), (68, 2), (233, 1), (234, 2)], [], [], [], [], [(0, 1), (3, 2), (5, 2), (8, 1), (9, 1), (10, 1), (12, 1), (24, 2), (25, 1), (57, 2), (58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (233, 1), (234, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 2), (5, 2), (6, 1), (9, 2), (10, 1), (15, 1), (24, 2), (25, 1), (57, 2), (60, 1), (65, 1), (67, 1), (68, 2), (233, 1), (234, 2)], [], [(0, 1), (1, 2), (3, 2), (5, 2), (8, 1), (9, 1), (10, 1), (12, 1), (15, 1), (24, 2), (25, 1), (57, 2), (58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (233, 1), (234, 2)], [], [(0, 1), (1, 2), (4, 2), (5, 2), (8, 1), (9, 1), (10, 1), (12, 1), (15, 1), (24, 2), (25, 1), (57, 2), (60, 1), (65, 1), (67, 1), (68, 2), (233, 1), (234, 2)], [], [], [], [], [], [(0, 1), (1, 2), (3, 1), (5, 2), (6, 2), (8, 2), (10, 1), (12, 2), (15, 2), (24, 2), (25, 1), (57, 2), (58, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 1), (234, 2)], [(0, 2), (1, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (10, 2), (12, 1), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (233, 2), (234, 1)], [(0, 1), (1, 1), (2, 1), (3, 2), (5, 1), (6, 2), (9, 1), (10, 2), (15, 1), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (65, 1), (67, 1), (68, 2), (233, 2), (234, 1)], [], [(0, 2), (1, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (10, 2), (12, 1), (24, 1), (25, 2), (57, 1), (58, 1), (65, 2), (66, 1), (67, 1), (68, 1), (72, 2), (117, 1), (233, 2), (234, 1)], [(0, 2), (1, 1), (5, 1), (6, 1), (8, 1), (10, 2), (15, 1), (24, 1), (25, 2), (57, 1), (60, 1), (65, 1), (67, 1), (68, 2), (115, 1), (233, 2), (234, 1)], [], [(0, 2), (1, 1), (5, 1), (6, 1), (8, 1), (10, 2), (15, 1), (24, 1), (25, 2), (57, 1), (60, 1), (65, 1), (67, 1), (68, 2), (174, 1), (233, 2), (234, 1)], [], [], [], [], [], [(0, 1), (1, 2), (3, 1), (5, 2), (6, 2), (9, 2), (10, 1), (12, 2), (15, 2), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 1), (234, 2)], [], [(0, 1), (1, 1), (2, 1), (4, 1), (5, 1), (8, 2), (9, 2), (10, 2), (12, 2), (15, 2), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 1), (234, 2)], [], [(0, 1), (1, 2), (2, 1), (5, 1), (8, 2), (10, 1), (12, 1), (15, 2), (17, 1), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 1), (234, 2)], [(0, 1), (1, 2), (4, 2), (5, 1), (6, 2), (9, 1), (10, 1), (15, 1), (22, 1), (24, 1), (25, 2), (57, 2), (60, 1), (67, 2), (233, 1), (234, 2)], [(0, 2), (1, 1), (2, 2), (3, 2), (5, 2), (6, 1), (9, 1), (10, 2), (12, 1), (15, 1), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (65, 2), (66, 2), (68, 1), (72, 2), (233, 2), (234, 1)], [(0, 2), (1, 1), (2, 2), (4, 2), (5, 2), (6, 1), (9, 1), (10, 2), (12, 1), (15, 1), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (65, 2), (66, 1), (68, 2), (72, 2), (233, 2), (234, 1)], [], [(0, 1), (1, 1), (4, 2), (5, 2), (6, 1), (9, 1), (10, 2), (12, 1), (15, 1), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (65, 1), (67, 1), (68, 2), (73, 1), (74, 2), (233, 2), (234, 1)], [], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (8, 1), (10, 2), (12, 1), (15, 1), (24, 2), (25, 1), (57, 1), (60, 1), (65, 1), (67, 1), (68, 2), (115, 1), (130, 1), (131, 2), (233, 2), (234, 1)], [], [], [(0, 1), (1, 2), (3, 1), (5, 2), (6, 1), (9, 2), (10, 1), (15, 2), (17, 2), (24, 2), (25, 1), (51, 1), (57, 2), (58, 2), (60, 2), (65, 1), (66, 2), (68, 2), (72, 1), (233, 1), (234, 2)], [(0, 2), (1, 1), (3, 1), (4, 1), (5, 1), (6, 2), (9, 1), (10, 2), (15, 2), (17, 2), (24, 1), (25, 2), (57, 1), (58, 2), (60, 2), (65, 1), (66, 2), (68, 2), (72, 1), (233, 2), (234, 1), (314, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (8, 1), (10, 2), (12, 2), (24, 2), (25, 1), (65, 1), (67, 2), (68, 2), (99, 1), (233, 2), (234, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 2), (8, 2), (9, 2), (10, 2), (24, 2), (25, 1), (65, 1), (67, 2), (68, 2), (157, 1), (233, 2), (234, 1)], [(1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 2), (9, 2), (10, 2), (24, 2), (25, 1), (57, 1), (58, 2), (65, 1), (67, 2), (68, 2), (233, 2), (234, 1), (392, 1)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (8, 1), (10, 2), (12, 2), (15, 1), (24, 2), (25, 1), (58, 2), (60, 1), (66, 2), (67, 2), (72, 1), (216, 1), (233, 2), (234, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (8, 1), (10, 2), (15, 2), (57, 1), (60, 2), (65, 1), (68, 2), (233, 2), (234, 1)], [], [], [], [], [], [(2, 1), (3, 2), (4, 2), (5, 2), (8, 1), (9, 2), (15, 2), (24, 2), (25, 1), (57, 1), (60, 2), (65, 1), (68, 2)], [], [], [], [], [(3, 2), (6, 1), (8, 2), (9, 1), (58, 1), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (115, 2), (131, 1)], [(0, 1), (2, 2), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (74, 1)], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb14 : List (List (Nat × Nat)) := [[], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (8, 1), (9, 1), (13, 1), (58, 2), (60, 2), (114, 1), (115, 1), (117, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (8, 1), (9, 1), (13, 1), (58, 2), (60, 1), (114, 1), (115, 1), (117, 2)], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (7, 1), (8, 1), (9, 1), (13, 1), (58, 1), (60, 2), (115, 2), (117, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (9, 1), (13, 1), (58, 2), (60, 1), (115, 1), (117, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (9, 1), (13, 2), (57, 2), (58, 2), (60, 1), (75, 1), (115, 1), (117, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (7, 2), (9, 1), (13, 2), (15, 2), (20, 1), (58, 2), (60, 1), (115, 1), (117, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (9, 1), (13, 2), (58, 1), (60, 2), (115, 2), (117, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (7, 1), (9, 2), (13, 2), (58, 1), (60, 2), (115, 2), (117, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (9, 1), (13, 2), (58, 2), (60, 1), (115, 1), (117, 2)], [], [], [], [(1, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 2), (14, 2), (58, 2), (60, 2), (64, 1), (73, 1), (114, 1), (115, 1), (117, 1)], [], [], [(1, 1), (3, 1), (4, 1), (6, 2), (7, 2), (8, 2), (14, 1), (58, 2), (60, 2), (73, 2), (114, 1), (115, 1), (117, 1)], [(1, 1), (4, 2), (6, 2), (7, 2), (8, 2), (14, 1), (58, 2), (60, 2), (73, 2), (114, 1), (115, 1), (117, 1)], [(1, 1), (2, 2), (3, 1), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (14, 1), (58, 2), (60, 2), (73, 2), (114, 1), (115, 1), (117, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (9, 2), (13, 2), (14, 2), (58, 2), (73, 1), (114, 1), (115, 1), (117, 1)], [(1, 1), (4, 2), (6, 2), (7, 2), (9, 2), (13, 2), (14, 2), (60, 2), (73, 1), (114, 1), (115, 1), (117, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (9, 1), (14, 2), (58, 1), (60, 1), (73, 1), (114, 2), (115, 2), (117, 2)], [], [], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (12, 1), (13, 2), (14, 1), (58, 2), (60, 2), (73, 2), (114, 1), (115, 1), (117, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (9, 2), (13, 2), (14, 2), (58, 2), (60, 2), (73, 2), (114, 1), (115, 1), (117, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (9, 2), (13, 2), (14, 1), (21, 1), (58, 2), (60, 2), (73, 2), (114, 1), (115, 1), (117, 1)], [], [], [(0, 1), (4, 2), (6, 1), (9, 2), (13, 2), (14, 2), (60, 2), (73, 1), (114, 2), (117, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (9, 2), (13, 2), (14, 2), (60, 2), (73, 1), (114, 2), (117, 1)], [], [], [], [], [], [], [(1, 1), (3, 1), (4, 1), (6, 1), (7, 2), (13, 2), (14, 1), (15, 1), (20, 2), (58, 2), (60, 2), (73, 2), (114, 2), (115, 1), (174, 1)], [(1, 1), (3, 1), (4, 1), (6, 1), (7, 2), (13, 2), (14, 1), (15, 1), (20, 2), (58, 2), (60, 2), (73, 2), (114, 2), (115, 1), (236, 1)], [(0, 1), (2, 2), (3, 1), (4, 1), (6, 1), (13, 2), (14, 1), (60, 2), (64, 2), (73, 2), (114, 2), (117, 1), (181, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (13, 1), (14, 1), (60, 1), (73, 2), (114, 1), (117, 2)], [], [], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (8, 1), (9, 2), (13, 1), (14, 2), (15, 1), (58, 2), (73, 1), (114, 2), (115, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (8, 1), (9, 1), (12, 2), (13, 2), (14, 2), (17, 1), (58, 2), (73, 1), (114, 2), (115, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (8, 1), (9, 1), (13, 1), (14, 2), (22, 1), (60, 2), (73, 1), (114, 2), (117, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (8, 2), (9, 1), (13, 1), (14, 2), (60, 1), (66, 1), (73, 1), (114, 1), (117, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 1), (13, 1), (14, 2), (60, 1), (65, 1), (73, 1), (114, 1), (117, 2)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (8, 2), (9, 1), (13, 1), (14, 2), (60, 1), (67, 1), (73, 1), (114, 1), (117, 2)], [], [], [], [], [], [], [(0, 2), (1, 2), (4, 1), (5, 1), (6, 1), (7, 1), (9, 1), (12, 1), (13, 1), (14, 1), (17, 2), (51, 1), (58, 1), (73, 2), (114, 1), (115, 2)], [(0, 2), (1, 2), (4, 1), (5, 1), (6, 1), (7, 1), (9, 1), (12, 1), (13, 1), (14, 1), (17, 2), (57, 2), (58, 2), (73, 2), (114, 2), (115, 1), (314, 1)], [(1, 1), (4, 2), (7, 2), (8, 1), (13, 1), (14, 1), (44, 1), (58, 1), (60, 1), (73, 1), (114, 2), (115, 2), (117, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (7, 2), (8, 2), (14, 1), (58, 1), (60, 1), (64, 2), (73, 2), (114, 2), (115, 2), (117, 2), (392, 1)], [(1, 1), (4, 2), (6, 1), (7, 1), (8, 1), (9, 1), (13, 1), (58, 1), (60, 1), (64, 2), (73, 2), (114, 2), (115, 2), (117, 2), (216, 1)], [(0, 1), (4, 2), (6, 1), (7, 2), (8, 1), (12, 2), (13, 1), (14, 1), (58, 1), (60, 1), (64, 2), (73, 2), (114, 2), (115, 2), (117, 2), (274, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 1), (57, 1), (58, 2), (114, 2), (115, 1)], [], [], [], [], [], [], [], [], [], [(60, 1), (73, 2), (117, 2), (130, 1)], [], [], [], [], [], [(1, 1), (4, 2), (7, 2), (11, 1), (58, 2), (60, 1), (115, 1), (117, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 1)], [], [], [], [], [], []] + +def comb15 : List (List (Nat × Nat)) := [[], [(0, 2), (3, 2), (7, 2), (11, 2), (12, 1), (16, 2), (18, 1), (19, 1), (64, 1), (120, 2), (293, 1)], [], [], [], [], [(0, 1), (2, 1), (3, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (13, 1), (14, 2), (16, 2), (18, 1), (19, 2)], [], [(0, 1), (3, 2), (7, 1), (12, 2), (13, 1), (14, 2), (16, 2), (18, 1), (19, 2)], [], [], [], [(0, 1), (3, 2), (7, 1), (8, 1), (12, 2), (14, 2), (16, 2), (18, 1), (19, 2), (60, 2), (64, 2), (68, 1), (77, 1)], [], [(0, 1), (3, 1), (4, 1), (7, 1), (12, 2), (16, 1), (18, 2), (19, 2)], [], [(0, 1), (3, 2), (7, 2), (9, 1), (11, 2), (12, 2), (14, 2), (16, 2), (18, 1), (19, 2)], [(0, 2), (3, 1), (7, 2), (12, 1), (14, 1), (16, 1), (18, 2), (19, 1)], [], [(0, 1), (3, 2), (7, 1), (8, 1), (12, 2), (14, 2), (16, 2), (18, 1), (19, 2)], [(0, 2), (2, 2), (3, 2), (7, 1), (8, 1), (9, 2), (11, 1), (12, 2), (16, 1), (18, 2), (19, 1)], [], [(0, 1), (2, 1), (4, 2), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (14, 1), (19, 2), (64, 2), (68, 1), (120, 2), (293, 1)], [], [(0, 1), (2, 1), (3, 1), (4, 1), (7, 2), (8, 2), (12, 1), (13, 1), (16, 1), (18, 2), (64, 1), (68, 2), (120, 2), (293, 1)], [], [(0, 1), (2, 1), (4, 2), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (14, 1), (19, 2), (64, 1), (68, 2), (120, 2), (293, 1)], [(2, 1), (3, 1), (4, 1), (5, 1), (7, 2), (8, 2), (12, 1), (13, 1), (16, 1), (18, 2), (64, 1), (68, 2), (120, 2), (293, 1)], [], [], [(2, 2), (4, 2), (7, 2), (8, 1), (11, 1), (12, 1), (13, 2), (19, 2), (58, 1), (64, 1), (68, 1), (120, 2), (293, 1)], [], [], [], [], [(2, 2), (3, 1), (4, 1), (7, 2), (8, 1), (9, 1), (12, 1), (13, 2), (14, 2), (16, 1), (18, 2), (64, 1), (68, 2), (120, 2), (293, 1)], [], [], [(2, 2), (3, 1), (4, 1), (7, 2), (8, 1), (12, 1), (13, 2), (14, 2), (16, 1), (18, 2), (21, 1), (64, 1), (68, 2), (120, 2), (293, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (7, 2), (8, 2), (12, 1), (13, 1), (16, 1), (18, 2), (19, 2), (64, 2), (68, 1), (120, 1), (293, 2)], [(0, 2), (2, 1), (4, 2), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (14, 1), (19, 1), (64, 2), (68, 1), (120, 1), (293, 2)], [(0, 1), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (12, 1), (13, 1), (16, 1), (18, 2), (19, 2), (64, 2), (68, 1), (120, 1), (293, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (12, 2), (13, 2), (16, 2), (18, 1), (19, 1), (60, 1), (64, 1), (68, 1), (120, 2), (293, 1)], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (16, 1), (18, 2), (19, 2), (58, 2), (64, 2), (68, 2), (115, 1), (120, 1), (293, 2)], [(0, 1), (2, 1), (3, 1), (4, 1), (7, 2), (8, 2), (12, 1), (13, 1), (16, 1), (18, 2), (19, 2), (64, 1), (68, 2), (120, 2), (293, 2)], [], [], [(0, 1), (2, 1), (3, 1), (4, 1), (7, 2), (8, 2), (12, 1), (13, 1), (16, 1), (18, 2), (19, 2), (64, 1), (68, 2), (120, 1), (181, 1), (293, 2)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (12, 2), (13, 1), (14, 1), (16, 2), (18, 1), (19, 1), (64, 1), (68, 2), (120, 2), (293, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 1), (8, 1), (13, 2), (16, 1), (18, 2), (19, 2), (64, 2), (68, 1), (120, 1), (293, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 2), (8, 1), (10, 1), (12, 1), (13, 2), (14, 2), (16, 1), (18, 2), (19, 2), (64, 2), (68, 1), (120, 1), (293, 2)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 2), (8, 1), (12, 1), (13, 2), (14, 2), (16, 1), (18, 2), (19, 2), (22, 1), (64, 2), (68, 1), (120, 1), (293, 2)], [(0, 2), (2, 2), (3, 1), (4, 2), (7, 1), (8, 1), (12, 2), (13, 1), (14, 1), (16, 2), (18, 1), (19, 1), (64, 1), (66, 1), (68, 1), (120, 2), (293, 1)], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (12, 2), (13, 1), (16, 2), (18, 1), (19, 1), (64, 1), (68, 1), (73, 1), (120, 2), (293, 1)], [(2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (8, 1), (11, 1), (12, 2), (13, 1), (14, 1), (16, 1), (18, 2), (64, 1), (68, 1), (71, 1), (120, 2), (293, 1)], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (8, 1), (11, 2), (13, 2), (16, 1), (18, 2), (19, 2), (58, 2), (64, 2), (68, 2), (120, 1), (137, 1), (293, 2)], [(0, 2), (1, 2), (2, 1), (4, 2), (6, 2), (7, 1), (8, 2), (13, 2), (14, 2), (16, 2), (18, 1), (19, 1), (51, 1), (64, 1), (68, 2), (120, 2), (293, 1)], [(4, 2), (9, 2), (13, 1), (16, 2), (18, 1), (57, 2), (64, 2), (68, 2), (120, 1), (293, 2), (314, 1)], [(0, 2), (2, 1), (4, 2), (6, 2), (7, 1), (8, 2), (13, 2), (14, 2), (16, 2), (18, 1), (44, 1), (64, 2), (68, 1), (120, 1), (293, 2)], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (13, 2), (14, 1), (19, 1), (64, 1), (68, 2), (120, 1), (157, 1), (293, 2)], [], [(0, 2), (2, 1), (4, 2), (8, 2), (13, 2), (14, 2), (16, 2), (19, 1), (64, 1), (68, 2), (120, 1), (216, 1), (293, 2)], [(0, 2), (2, 1), (4, 2), (8, 2), (13, 2), (14, 2), (16, 2), (19, 1), (64, 1), (68, 2), (120, 1), (274, 1), (293, 2)], [], [], [(0, 2), (2, 1), (3, 2), (8, 2), (9, 1), (19, 1), (57, 1), (64, 2), (120, 1), (293, 2)], [], [], [], [], [], [], [], [], [], [(2, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (64, 1), (68, 2), (120, 2), (130, 1)], [], [], [], [], [(2, 1), (4, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (16, 1)], [], [(2, 1), (3, 2), (6, 1), (8, 2), (12, 2), (14, 1)], [], [], [], [], [], []] + +def comb16 : List (List (Nat × Nat)) := [[], [(0, 1), (4, 2), (8, 2), (13, 1), (14, 2), (16, 1), (19, 2), (21, 1), (24, 1), (58, 1), (172, 1), (173, 2)], [], [(0, 2), (4, 1), (8, 2), (9, 2), (11, 1), (13, 1), (14, 2), (16, 1), (19, 1), (21, 2), (24, 1), (172, 1)], [], [], [(0, 2), (4, 2), (8, 2), (13, 1), (14, 2), (16, 1), (18, 1), (19, 1), (21, 1), (24, 1)], [], [], [(0, 2), (4, 1), (8, 2), (9, 2), (11, 1), (13, 1), (14, 2), (16, 1), (18, 1), (19, 1), (21, 2), (24, 1)], [], [], [], [], [(0, 1), (4, 2), (8, 1), (13, 2), (14, 2), (16, 1), (19, 2), (21, 1), (24, 2)], [(0, 2), (2, 2), (4, 2), (8, 2), (13, 1), (14, 2), (16, 1), (19, 1), (20, 1), (21, 1), (24, 2)], [], [(0, 1), (4, 2), (8, 2), (9, 1), (11, 2), (13, 2), (14, 1), (16, 2), (19, 2), (21, 1), (24, 1)], [(0, 2), (4, 1), (8, 1), (9, 2), (11, 1), (13, 2), (14, 2), (16, 1), (19, 1), (21, 2), (24, 2)], [(0, 2), (4, 1), (8, 2), (9, 2), (11, 1), (13, 1), (14, 2), (16, 1), (19, 1), (21, 2), (24, 2)], [], [(0, 1), (4, 2), (8, 2), (13, 2), (14, 1), (16, 2), (19, 2), (21, 1), (24, 1)], [(0, 2), (3, 2), (4, 2), (8, 2), (11, 1), (18, 1), (19, 1), (21, 1), (24, 1), (58, 1), (64, 1), (66, 1), (172, 1), (173, 2)], [], [(2, 2), (3, 2), (4, 2), (11, 1), (13, 2), (18, 1), (19, 1), (21, 1), (24, 1), (58, 1), (66, 2), (172, 1), (173, 2)], [(0, 2), (3, 2), (4, 2), (8, 2), (11, 1), (18, 1), (19, 1), (21, 1), (24, 1), (58, 1), (66, 2), (172, 1), (173, 2)], [], [(2, 2), (3, 2), (4, 1), (5, 1), (8, 2), (9, 2), (11, 2), (13, 2), (14, 1), (16, 2), (18, 1), (21, 2), (24, 2), (58, 1), (66, 2), (172, 1), (173, 2)], [], [(0, 2), (3, 2), (4, 2), (8, 2), (9, 1), (11, 1), (18, 2), (19, 1), (58, 1), (60, 1), (66, 1), (172, 1), (173, 2)], [], [], [(2, 1), (3, 1), (4, 1), (9, 1), (11, 1), (13, 1), (14, 2), (16, 1), (18, 1), (21, 2), (24, 2), (58, 2), (66, 1), (172, 2), (173, 1)], [], [(1, 2), (3, 1), (8, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (18, 2), (21, 1), (24, 1), (58, 1), (66, 2), (172, 1), (173, 2)], [(3, 1), (4, 2), (8, 2), (11, 2), (13, 2), (14, 1), (16, 2), (18, 2), (21, 1), (24, 1), (58, 1), (66, 2), (172, 1), (173, 2)], [], [(3, 1), (4, 2), (8, 2), (9, 2), (11, 2), (13, 2), (14, 2), (16, 2), (18, 2), (21, 1), (24, 1), (58, 1), (66, 2), (172, 1), (173, 2)], [], [], [(0, 1), (1, 1), (3, 2), (4, 2), (9, 1), (11, 1), (13, 2), (18, 1), (19, 2), (58, 2), (66, 1), (172, 2), (173, 1)], [], [(0, 2), (3, 2), (4, 2), (8, 2), (11, 2), (13, 2), (14, 1), (16, 2), (18, 1), (19, 1), (21, 1), (24, 1), (58, 2), (66, 1), (172, 2), (173, 1)], [], [(2, 1), (3, 1), (4, 1), (9, 1), (11, 1), (13, 1), (14, 2), (16, 1), (18, 2), (19, 2), (21, 2), (24, 2), (58, 2), (66, 1), (172, 1), (173, 2)], [], [(0, 2), (3, 1), (8, 2), (11, 1), (13, 2), (14, 1), (16, 2), (18, 1), (19, 1), (21, 1), (24, 1), (58, 2), (60, 2), (66, 2), (117, 1), (172, 2), (173, 1)], [], [(0, 2), (3, 1), (4, 2), (8, 2), (11, 2), (13, 2), (14, 1), (16, 2), (18, 1), (19, 1), (21, 1), (24, 1), (58, 2), (64, 2), (66, 2), (120, 1), (172, 2), (173, 1)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (8, 2), (9, 2), (11, 2), (13, 2), (14, 1), (16, 2), (18, 1), (19, 1), (20, 2), (21, 2), (24, 1), (58, 2), (60, 2), (66, 2), (172, 2), (173, 1), (236, 1)], [], [], [], [(0, 1), (3, 1), (4, 1), (11, 1), (13, 1), (14, 2), (16, 1), (18, 1), (19, 2), (58, 1), (66, 2), (172, 1), (173, 2)], [], [], [(0, 2), (2, 1), (3, 1), (5, 2), (8, 2), (10, 1), (11, 2), (13, 2), (14, 1), (16, 2), (18, 2), (19, 1), (58, 2), (66, 1), (172, 2), (173, 1)], [], [(0, 2), (2, 1), (3, 1), (5, 2), (8, 2), (11, 2), (13, 2), (14, 2), (16, 1), (17, 1), (18, 2), (19, 1), (58, 2), (66, 1), (172, 2), (173, 1)], [], [], [(1, 1), (3, 2), (9, 1), (11, 1), (13, 2), (14, 1), (15, 2), (16, 2), (18, 1), (21, 2), (24, 2), (58, 1), (65, 1), (66, 1), (172, 1), (173, 2)], [], [(0, 1), (3, 2), (9, 1), (11, 1), (13, 1), (14, 1), (16, 1), (18, 1), (19, 2), (58, 1), (66, 1), (73, 1), (172, 1), (173, 2)], [], [(2, 1), (3, 1), (4, 2), (5, 2), (9, 2), (13, 2), (14, 1), (16, 2), (18, 1), (21, 1), (24, 2), (58, 1), (66, 1), (80, 1), (172, 1), (173, 2)], [], [(1, 2), (2, 1), (4, 1), (5, 2), (8, 2), (9, 2), (11, 2), (13, 2), (14, 2), (16, 1), (18, 2), (21, 1), (24, 1), (58, 2), (60, 2), (66, 2), (127, 1), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (5, 1), (8, 1), (9, 2), (11, 2), (13, 1), (14, 2), (16, 1), (17, 2), (18, 2), (19, 1), (51, 1), (58, 1), (66, 2), (172, 1), (173, 2)], [(0, 1), (2, 2), (3, 2), (5, 1), (8, 1), (9, 2), (11, 2), (13, 1), (14, 2), (16, 1), (17, 2), (18, 1), (19, 2), (57, 2), (58, 2), (66, 2), (172, 2), (173, 1), (314, 1)], [(3, 2), (4, 1), (8, 1), (11, 2), (13, 1), (14, 2), (18, 2), (19, 2), (21, 2), (24, 2), (44, 1), (58, 2), (66, 1), (172, 2), (173, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (8, 2), (11, 2), (14, 2), (18, 2), (19, 2), (21, 2), (24, 2), (58, 2), (64, 2), (66, 2), (157, 1), (172, 2), (173, 1)], [(0, 2), (2, 2), (3, 2), (4, 1), (8, 2), (9, 2), (11, 2), (18, 2), (19, 2), (21, 2), (24, 2), (58, 1), (66, 2), (120, 2), (172, 2), (173, 1), (392, 1)], [], [(0, 1), (3, 1), (4, 1), (8, 1), (9, 2), (14, 1), (16, 2), (18, 2), (19, 2), (21, 2), (24, 2), (58, 2), (64, 2), (66, 2), (172, 2), (173, 1), (274, 1)], [], [], [(9, 1), (11, 2), (14, 2), (16, 1), (57, 1), (58, 2), (172, 2), (173, 1)], [], [], [], [], [], [], [], [], [], [(3, 1), (9, 1), (11, 2), (14, 2), (64, 1), (66, 2), (120, 2), (130, 1)], [], [], [], [], [(9, 1), (11, 2), (14, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb17 : List (List (Nat × Nat)) := [[], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 1), (12, 2), (17, 1), (18, 1), (19, 2), (66, 1), (233, 1), (234, 2)], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (7, 1), (11, 1), (12, 2), (17, 1), (18, 1), (19, 1), (233, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (7, 1), (12, 2), (17, 1), (18, 1), (19, 2), (24, 1), (25, 2)], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (7, 1), (11, 1), (12, 2), (17, 1), (18, 1), (19, 1), (24, 1)], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (7, 1), (11, 1), (12, 2), (17, 1), (18, 2), (19, 1), (57, 2), (63, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (7, 1), (12, 2), (17, 1), (18, 2), (19, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 2), (12, 1), (16, 2), (17, 2), (18, 2), (19, 1), (20, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (11, 2), (12, 1), (17, 2), (18, 1), (19, 2)], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (7, 1), (11, 1), (12, 2), (17, 1), (18, 2), (19, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (17, 2), (18, 1), (19, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (11, 1), (15, 1), (16, 2), (18, 2), (19, 1), (24, 1), (25, 2), (57, 1), (63, 2), (64, 1), (65, 2), (233, 1), (234, 2)], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (11, 1), (15, 1), (16, 2), (18, 2), (19, 1), (24, 1), (25, 2), (65, 2), (66, 1), (233, 1), (234, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (11, 1), (15, 1), (16, 2), (18, 2), (19, 1), (24, 1), (25, 2), (65, 2), (66, 1), (233, 1), (234, 2)], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (7, 1), (11, 2), (12, 1), (15, 1), (16, 2), (17, 2), (24, 1), (25, 2), (65, 2), (66, 1), (233, 1), (234, 2)], [], [], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1), (24, 2), (25, 1), (60, 1), (65, 1), (66, 1), (233, 1), (234, 2)], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 1), (11, 2), (12, 1), (15, 2), (16, 1), (17, 2), (24, 2), (25, 1), (58, 1), (65, 1), (66, 1), (233, 1), (234, 2)], [], [], [(1, 2), (2, 2), (3, 2), (4, 2), (5, 1), (6, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (18, 1), (19, 2), (24, 1), (25, 2), (65, 1), (66, 2), (233, 2), (234, 1)], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1), (24, 2), (25, 1), (65, 2), (66, 1), (233, 1), (234, 2)], [], [(1, 1), (3, 2), (4, 1), (5, 2), (6, 1), (11, 2), (12, 2), (15, 1), (16, 2), (17, 2), (18, 2), (19, 1), (24, 2), (25, 1), (65, 2), (66, 1), (233, 1), (234, 2)], [], [], [], [(0, 1), (2, 1), (5, 1), (6, 2), (7, 1), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1), (24, 1), (25, 2), (65, 1), (66, 2), (233, 2), (234, 1)], [(0, 2), (1, 2), (2, 1), (5, 1), (6, 1), (7, 1), (11, 2), (12, 1), (15, 2), (16, 1), (17, 2), (24, 1), (25, 2), (65, 1), (66, 2), (233, 2), (234, 1)], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (18, 1), (19, 2), (24, 2), (25, 1), (65, 1), (66, 2), (233, 1), (234, 2)], [(0, 1), (2, 1), (5, 1), (6, 2), (11, 1), (12, 1), (15, 1), (16, 2), (17, 2), (18, 2), (19, 1), (24, 1), (25, 2), (60, 2), (65, 2), (66, 2), (117, 1), (233, 2), (234, 1)], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 1), (11, 2), (12, 1), (15, 1), (16, 2), (17, 2), (18, 2), (19, 1), (24, 1), (25, 2), (58, 2), (65, 2), (66, 2), (115, 1), (233, 2), (234, 1)], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (11, 2), (12, 2), (15, 1), (17, 1), (18, 2), (19, 1), (20, 2), (24, 1), (25, 2), (60, 2), (65, 2), (66, 2), (174, 1), (233, 2), (234, 1)], [], [], [], [], [], [(0, 2), (2, 2), (5, 2), (6, 1), (11, 1), (12, 2), (15, 1), (16, 2), (17, 1), (18, 1), (19, 2), (24, 1), (25, 2), (65, 2), (66, 1), (233, 1), (234, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 1), (11, 2), (12, 1), (15, 2), (16, 1), (17, 2), (18, 2), (19, 1), (24, 2), (25, 1), (65, 1), (66, 2), (233, 2), (234, 1)], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 1), (11, 2), (12, 2), (15, 2), (16, 2), (17, 1), (18, 2), (19, 1), (24, 2), (25, 1), (65, 1), (66, 2), (233, 2), (234, 1)], [], [], [], [], [(0, 2), (3, 2), (4, 1), (5, 1), (6, 1), (11, 1), (12, 2), (15, 1), (16, 2), (17, 1), (18, 1), (19, 2), (24, 1), (25, 2), (65, 1), (66, 1), (67, 1), (233, 1), (234, 2)], [], [(0, 2), (3, 2), (4, 1), (5, 1), (6, 1), (11, 1), (12, 2), (15, 1), (16, 2), (17, 1), (18, 1), (19, 2), (24, 1), (25, 2), (57, 1), (60, 2), (63, 2), (65, 2), (66, 1), (71, 1), (233, 1), (234, 2)], [(0, 2), (3, 2), (4, 1), (5, 1), (6, 2), (12, 1), (15, 1), (16, 2), (17, 2), (24, 1), (25, 2), (57, 1), (58, 2), (63, 2), (65, 2), (66, 1), (80, 1), (233, 1), (234, 2)], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (11, 2), (12, 2), (15, 1), (16, 2), (17, 2), (18, 1), (19, 2), (24, 2), (25, 1), (58, 2), (65, 2), (66, 2), (115, 1), (130, 1), (131, 2), (233, 2), (234, 1)], [], [], [(0, 2), (2, 2), (5, 2), (6, 1), (7, 2), (11, 2), (15, 1), (16, 2), (18, 1), (19, 2), (24, 2), (25, 1), (51, 1), (65, 2), (66, 1), (233, 1), (234, 2)], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 1), (11, 2), (15, 1), (16, 2), (18, 1), (19, 2), (24, 1), (25, 2), (57, 2), (65, 2), (66, 2), (233, 2), (234, 1), (314, 1)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (11, 2), (15, 2), (16, 1), (18, 1), (19, 2), (24, 2), (25, 1), (44, 1), (65, 1), (66, 2), (233, 2), (234, 1)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (11, 2), (15, 2), (16, 1), (18, 1), (19, 2), (24, 2), (25, 1), (57, 2), (63, 1), (64, 2), (65, 1), (157, 1), (233, 2), (234, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (11, 2), (15, 2), (16, 1), (18, 1), (19, 2), (24, 2), (25, 1), (57, 2), (63, 1), (64, 2), (65, 1), (233, 2), (234, 1), (392, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (17, 2), (18, 1), (19, 2), (24, 2), (25, 1), (57, 2), (63, 1), (64, 2), (65, 1), (216, 1), (233, 2), (234, 1)], [], [], [], [(0, 2), (2, 1), (7, 1), (11, 2), (12, 2), (17, 1), (57, 1), (66, 2), (233, 2), (234, 1)], [], [], [], [], [], [], [], [], [], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 2), (11, 2), (12, 2), (15, 1), (16, 2), (18, 1), (19, 2), (58, 1), (65, 2), (115, 2), (131, 1)], [], [], [], [], [(7, 1), (11, 2), (12, 2), (17, 1)], [], [], [], [], [], [], [], []] + +def comb18 : List (List (Nat × Nat)) := [[], [], [(3, 1), (4, 2), (7, 2), (10, 2), (11, 2), (12, 1), (14, 1), (16, 2), (20, 2), (21, 1), (121, 1), (172, 1), (173, 2)], [(3, 1), (4, 2), (7, 2), (9, 2), (11, 2), (12, 1), (14, 1), (16, 2), (19, 2), (20, 2), (21, 2), (172, 1)], [], [], [], [(3, 1), (4, 2), (7, 2), (11, 2), (12, 1), (14, 1), (16, 2), (18, 1), (19, 2), (20, 2), (21, 1)], [], [(3, 1), (4, 2), (7, 2), (9, 2), (11, 2), (12, 1), (14, 1), (16, 2), (18, 1), (19, 2), (20, 2), (21, 2)], [], [(3, 1), (4, 2), (7, 1), (11, 1), (12, 2), (16, 1), (18, 2), (19, 1), (20, 1), (21, 1), (66, 1), (73, 2), (75, 1)], [], [], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (12, 1), (19, 1), (20, 1), (21, 1)], [], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 1), (12, 1), (20, 1), (21, 2)], [], [], [(2, 1), (3, 1), (4, 2), (7, 2), (11, 1), (12, 1), (20, 1), (21, 2)], [], [(3, 1), (4, 2), (7, 1), (11, 2), (12, 2), (20, 2), (21, 1)], [(2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 1), (12, 1), (14, 2), (16, 1), (18, 1), (19, 2), (20, 1), (21, 2), (60, 1), (64, 1), (66, 2), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [(2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 1), (12, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 1), (21, 2), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [], [(2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 1), (12, 1), (14, 2), (16, 1), (18, 1), (19, 2), (20, 1), (21, 2), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [], [(2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (10, 1), (12, 1), (14, 2), (16, 1), (18, 1), (19, 2), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (11, 1), (12, 1), (18, 2), (19, 1), (20, 1), (21, 2), (60, 2), (67, 1), (117, 1), (121, 2), (172, 1), (173, 2)], [(2, 1), (3, 1), (4, 2), (6, 2), (8, 1), (10, 1), (11, 1), (12, 1), (18, 2), (19, 1), (20, 1), (21, 2), (60, 2), (67, 1), (117, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [(2, 1), (3, 1), (6, 1), (7, 1), (8, 2), (12, 1), (18, 2), (19, 1), (20, 1), (21, 2), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [(2, 2), (6, 2), (7, 1), (8, 1), (14, 1), (18, 2), (19, 1), (20, 1), (21, 2), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (11, 1), (12, 1), (18, 1), (19, 2), (20, 1), (21, 2), (60, 2), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [], [], [(2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (11, 1), (18, 1), (19, 2), (60, 2), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (10, 2), (11, 1), (12, 1), (18, 1), (19, 2), (20, 1), (21, 2), (60, 2), (67, 2), (117, 1), (121, 2), (172, 2), (173, 1)], [], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (18, 1), (19, 2), (60, 2), (66, 1), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [], [(2, 1), (6, 1), (7, 2), (8, 2), (9, 2), (10, 1), (12, 2), (18, 2), (19, 1), (20, 2), (21, 1), (60, 2), (67, 1), (115, 1), (117, 1), (121, 1), (172, 1), (173, 2)], [], [], [(5, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 1), (18, 1), (19, 2), (60, 1), (67, 2), (117, 1), (121, 2), (172, 2), (173, 1), (236, 1)], [], [], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (11, 2), (12, 1), (14, 1), (16, 2), (18, 2), (19, 1), (20, 1), (21, 2), (60, 2), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [], [(2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (10, 2), (11, 1), (14, 1), (16, 2), (18, 2), (19, 1), (20, 1), (21, 2), (60, 2), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [(2, 1), (6, 1), (7, 2), (8, 2), (11, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 2), (21, 1), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [], [], [(2, 2), (6, 2), (7, 2), (8, 1), (10, 2), (11, 1), (12, 2), (14, 2), (16, 1), (17, 1), (18, 2), (19, 1), (20, 1), (21, 2), (60, 2), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [], [], [(2, 1), (6, 2), (7, 1), (8, 1), (10, 1), (11, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 2), (21, 1), (60, 1), (65, 1), (67, 1), (117, 2), (121, 1), (172, 1), (173, 2)], [], [], [(2, 2), (6, 1), (7, 2), (8, 2), (10, 1), (11, 1), (14, 1), (16, 2), (18, 2), (19, 1), (20, 1), (21, 2), (60, 1), (67, 2), (71, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [], [(2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (10, 1), (11, 2), (14, 1), (16, 1), (18, 1), (19, 2), (20, 1), (21, 2), (60, 2), (67, 1), (117, 1), (121, 1), (130, 1), (172, 1), (173, 2)], [], [(2, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 2), (60, 2), (67, 1), (117, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [(2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (10, 1), (11, 2), (14, 2), (16, 1), (17, 2), (18, 2), (19, 1), (20, 2), (21, 1), (51, 1), (60, 1), (67, 2), (117, 2), (121, 1), (172, 1), (173, 2)], [(2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (10, 1), (11, 2), (14, 2), (16, 1), (17, 2), (18, 1), (19, 2), (20, 2), (21, 1), (60, 1), (67, 2), (117, 2), (121, 1), (172, 2), (173, 1), (314, 1)], [(2, 2), (3, 2), (4, 1), (6, 1), (8, 1), (12, 2), (16, 2), (18, 2), (19, 1), (20, 2), (21, 1), (44, 1), (60, 2), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [(2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (12, 2), (14, 1), (16, 2), (18, 2), (19, 1), (20, 2), (21, 1), (60, 2), (64, 2), (66, 1), (67, 1), (99, 1), (117, 1), (121, 2), (172, 2), (173, 1)], [], [(2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (12, 2), (14, 1), (16, 2), (18, 2), (19, 1), (20, 2), (21, 1), (60, 2), (64, 2), (66, 1), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1), (392, 1)], [], [(2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (12, 1), (14, 2), (16, 1), (18, 2), (19, 1), (20, 2), (21, 1), (60, 2), (64, 2), (66, 1), (67, 1), (117, 1), (121, 2), (172, 2), (173, 1), (274, 1)], [], [], [], [(2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (10, 1), (12, 1), (14, 2), (16, 1), (114, 1), (121, 2), (172, 2), (173, 1)], [], [], [], [], [(2, 2), (3, 1), (4, 2), (7, 2), (8, 1), (12, 1), (14, 2), (16, 1), (18, 2), (19, 1)], [], [], [], [], [(3, 1), (4, 2), (9, 1), (14, 2), (66, 2), (73, 1)], [], [], [], [(2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (12, 1), (14, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb19 : List (List (Nat × Nat)) := [[], [], [], [(1, 1), (3, 1), (4, 2), (7, 2), (12, 1), (15, 2), (16, 1), (19, 1), (21, 2), (57, 1), (72, 2), (172, 1)], [], [], [], [], [(1, 1), (3, 1), (4, 2), (7, 2), (12, 1), (14, 1), (15, 2), (16, 1), (18, 1), (19, 1), (21, 1), (57, 1), (72, 2)], [(1, 1), (3, 1), (4, 2), (7, 2), (12, 1), (15, 2), (16, 1), (18, 1), (19, 1), (21, 2), (57, 1), (72, 2)], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (7, 2), (12, 1), (14, 1), (15, 2), (16, 1), (19, 1), (21, 1), (57, 1), (64, 2), (66, 1), (72, 1), (77, 1)], [], [], [(1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (14, 1), (15, 1), (16, 1), (19, 1), (20, 1), (21, 1), (57, 1), (72, 2)], [(1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (12, 1), (15, 2), (16, 1), (19, 1), (21, 2), (57, 1), (72, 2)], [], [(1, 1), (3, 1), (4, 2), (7, 2), (12, 1), (15, 2), (16, 1), (19, 1), (21, 2), (57, 2), (72, 2)], [], [(1, 2), (3, 2), (4, 1), (7, 1), (12, 2), (15, 1), (16, 2), (19, 2), (21, 1), (57, 2), (72, 1)], [(1, 2), (3, 1), (4, 2), (7, 1), (12, 2), (15, 1), (16, 2), (19, 2), (21, 1), (57, 2), (72, 1)], [(0, 2), (3, 1), (4, 2), (6, 2), (12, 1), (15, 2), (16, 1), (18, 1), (21, 2), (64, 1), (66, 2), (67, 2), (72, 2), (121, 1), (172, 1), (173, 2)], [(3, 1), (4, 2), (6, 1), (12, 2), (15, 2), (16, 1), (18, 1), (21, 2), (67, 2), (72, 1), (121, 1), (172, 1), (173, 2)], [(3, 1), (4, 2), (6, 2), (12, 1), (15, 2), (16, 1), (18, 1), (21, 2), (57, 2), (67, 2), (72, 2), (121, 1), (172, 1), (173, 2)], [], [], [(1, 2), (3, 1), (4, 2), (6, 2), (7, 1), (17, 1), (18, 1), (19, 2), (57, 2), (67, 2), (72, 2), (121, 1), (172, 1), (173, 2)], [(1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (18, 2), (19, 2), (21, 2), (67, 1), (72, 2), (121, 2), (172, 1), (173, 2)], [], [], [(3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (18, 2), (19, 2), (21, 2), (57, 2), (67, 2), (72, 2), (121, 1), (172, 1), (173, 2)], [], [(1, 2), (3, 1), (6, 1), (7, 1), (12, 1), (18, 2), (19, 2), (21, 2), (57, 2), (67, 2), (72, 2), (121, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 2), (6, 2), (7, 1), (9, 1), (18, 2), (19, 2), (21, 2), (57, 2), (67, 2), (121, 1), (172, 1), (173, 2)], [(1, 1), (6, 1), (7, 2), (14, 2), (18, 1), (19, 1), (21, 1), (57, 1), (67, 1), (72, 1), (121, 2), (172, 2), (173, 1)], [], [], [(1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (18, 1), (21, 2), (67, 1), (72, 2), (121, 2), (172, 2), (173, 1)], [(3, 1), (4, 2), (6, 2), (12, 1), (15, 2), (16, 1), (18, 1), (21, 2), (57, 2), (67, 1), (72, 2), (121, 2), (172, 2), (173, 1)], [], [(1, 2), (3, 1), (4, 2), (6, 2), (7, 1), (15, 2), (16, 1), (18, 1), (19, 2), (57, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (9, 2), (12, 1), (15, 2), (16, 1), (18, 1), (19, 2), (57, 2), (66, 1), (67, 1), (72, 2), (121, 2), (172, 2), (173, 1)], [], [], [(1, 2), (4, 2), (6, 2), (7, 1), (15, 2), (16, 1), (18, 1), (19, 2), (57, 2), (64, 2), (66, 1), (67, 1), (120, 1), (121, 2), (172, 2), (173, 1)], [(6, 1), (12, 2), (14, 2), (15, 1), (18, 2), (19, 1), (20, 2), (21, 1), (57, 1), (67, 1), (72, 1), (121, 2), (172, 1), (173, 1), (174, 1)], [], [], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (18, 2), (19, 2), (21, 2), (57, 2), (67, 1), (72, 2), (121, 2), (172, 2), (173, 1)], [], [], [(1, 2), (3, 1), (4, 2), (5, 1), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (17, 2), (18, 2), (19, 2), (21, 2), (57, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [], [(1, 2), (6, 2), (10, 1), (12, 1), (15, 2), (16, 1), (17, 2), (18, 2), (19, 2), (21, 2), (57, 2), (67, 1), (121, 2), (172, 2), (173, 1)], [(1, 1), (6, 1), (7, 2), (14, 2), (15, 1), (18, 1), (19, 1), (21, 1), (57, 1), (67, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [], [(1, 2), (6, 1), (7, 1), (12, 1), (15, 2), (16, 1), (17, 2), (18, 2), (19, 2), (21, 2), (57, 2), (67, 2), (121, 2), (172, 2), (173, 1)], [(0, 2), (1, 1), (6, 2), (7, 2), (9, 1), (12, 2), (14, 2), (15, 1), (16, 2), (18, 1), (19, 1), (21, 1), (57, 1), (66, 2), (67, 2), (72, 1), (73, 1), (121, 1), (172, 1), (173, 2)], [], [], [(1, 1), (3, 1), (6, 1), (7, 2), (14, 2), (15, 1), (16, 2), (18, 1), (19, 1), (21, 1), (57, 1), (64, 1), (66, 2), (67, 2), (120, 2), (121, 1), (130, 1), (172, 1), (173, 2)], [], [], [(3, 2), (4, 1), (6, 1), (12, 2), (15, 1), (16, 2), (18, 2), (21, 1), (51, 1), (57, 1), (67, 2), (72, 1), (121, 1), (172, 1), (173, 2)], [(1, 1), (3, 2), (4, 1), (6, 2), (7, 2), (12, 2), (15, 1), (16, 2), (18, 1), (19, 1), (21, 1), (67, 2), (72, 1), (121, 1), (172, 2), (173, 1), (314, 1)], [(3, 2), (4, 1), (6, 1), (12, 2), (15, 1), (16, 2), (18, 2), (21, 1), (44, 1), (57, 1), (67, 1), (72, 1), (121, 2), (172, 2), (173, 1)], [(0, 2), (3, 2), (4, 1), (6, 1), (9, 2), (12, 2), (14, 1), (15, 1), (16, 2), (18, 2), (21, 1), (64, 2), (66, 1), (67, 1), (99, 1), (121, 2), (172, 2), (173, 1)], [(0, 1), (3, 2), (4, 1), (6, 1), (12, 2), (15, 1), (16, 2), (18, 2), (21, 1), (64, 2), (66, 1), (67, 1), (72, 1), (121, 2), (157, 1), (172, 2), (173, 1)], [], [], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 2), (12, 1), (14, 1), (15, 2), (16, 1), (18, 2), (21, 1), (64, 2), (66, 1), (67, 1), (72, 1), (121, 2), (172, 2), (173, 1), (274, 1)], [], [], [], [], [(3, 1), (5, 2), (15, 1), (16, 2), (17, 1), (64, 1), (66, 2), (67, 1), (72, 2), (120, 2), (121, 2), (172, 2), (173, 1), (293, 1)], [], [], [], [], [(1, 1), (3, 1), (4, 2), (7, 2), (12, 1), (13, 1), (14, 2), (15, 2), (16, 1), (18, 2), (19, 1), (72, 2)], [], [], [], [], [(3, 1), (4, 2), (66, 2), (68, 1)], [], [], [], [(0, 1), (3, 1), (4, 2), (6, 2), (9, 2), (11, 1), (12, 1), (72, 2)], [], [], [], [], [], [], []] + +def comb20 : List (List (Nat × Nat)) := [[], [], [], [], [(0, 2), (1, 1), (2, 1), (4, 2), (5, 2), (7, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (233, 1)], [], [], [], [(0, 1), (1, 2), (2, 1), (4, 1), (5, 2), (7, 1), (8, 1), (9, 2), (12, 2), (15, 2), (19, 2), (24, 1), (25, 2)], [], [(0, 2), (1, 1), (2, 1), (4, 2), (5, 2), (7, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 1)], [], [(0, 2), (1, 1), (2, 1), (4, 1), (5, 2), (7, 2), (8, 1), (9, 2), (12, 1), (15, 2), (19, 1), (63, 1), (64, 2), (77, 1)], [(0, 2), (1, 1), (2, 1), (4, 2), (5, 2), (7, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (63, 1)], [], [(0, 2), (1, 2), (4, 1), (5, 2), (7, 2), (9, 1), (10, 2), (12, 2), (15, 1), (19, 1), (20, 1)], [], [(0, 2), (1, 1), (2, 1), (4, 2), (5, 2), (7, 2), (8, 2), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1)], [], [(0, 1), (1, 2), (2, 2), (4, 1), (5, 1), (7, 1), (8, 2), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (19, 2)], [], [(0, 1), (1, 2), (2, 1), (4, 1), (5, 2), (7, 1), (8, 2), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (19, 2)], [(1, 1), (4, 2), (5, 2), (7, 2), (9, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 1), (25, 2), (63, 1), (64, 1), (121, 1), (233, 1), (234, 2)], [(1, 1), (4, 2), (5, 2), (7, 2), (8, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 1), (25, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [(0, 1), (1, 1), (2, 2), (4, 2), (5, 2), (7, 2), (9, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 1), (25, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [], [(0, 1), (5, 2), (8, 2), (9, 2), (14, 2), (16, 1), (24, 1), (25, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [], [(1, 1), (4, 2), (5, 2), (7, 2), (8, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 2), (25, 1), (63, 1), (121, 2), (233, 1), (234, 2)], [], [(1, 1), (2, 2), (4, 2), (7, 2), (8, 2), (9, 2), (12, 1), (14, 2), (16, 1), (19, 1), (24, 2), (25, 1), (58, 1), (63, 2), (72, 2), (121, 1), (233, 1), (234, 2)], [(1, 2), (2, 2), (4, 1), (7, 2), (8, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 2), (25, 1), (63, 2), (121, 1), (233, 1), (234, 2)], [(1, 1), (4, 2), (7, 2), (8, 1), (14, 2), (16, 1), (19, 1), (24, 2), (25, 1), (63, 2), (121, 1), (233, 1), (234, 2)], [], [], [], [], [(1, 2), (2, 1), (4, 1), (7, 1), (8, 1), (12, 2), (14, 2), (16, 2), (19, 2), (24, 1), (25, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [], [(0, 1), (5, 1), (7, 2), (8, 2), (9, 2), (10, 1), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 1), (25, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [(0, 1), (1, 1), (2, 2), (4, 2), (5, 2), (7, 2), (9, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 1), (25, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [(0, 2), (2, 2), (5, 2), (9, 1), (12, 1), (14, 2), (15, 2), (16, 1), (24, 1), (25, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 1), (5, 2), (8, 2), (9, 2), (14, 2), (15, 2), (16, 1), (24, 1), (25, 2), (63, 1), (72, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (2, 2), (5, 2), (9, 1), (14, 2), (15, 2), (16, 1), (24, 1), (25, 2), (58, 2), (63, 1), (72, 1), (115, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (1, 2), (2, 2), (4, 1), (9, 1), (10, 1), (12, 2), (14, 1), (15, 1), (16, 2), (20, 2), (24, 2), (25, 1), (63, 1), (121, 2), (233, 1), (234, 1), (236, 1)], [], [(0, 1), (1, 1), (2, 2), (4, 2), (5, 2), (7, 2), (8, 2), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (24, 2), (25, 1), (63, 1), (121, 2), (233, 2), (234, 1)], [], [(0, 1), (1, 1), (2, 2), (5, 2), (7, 2), (8, 2), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (19, 1), (24, 2), (25, 1), (63, 1), (121, 2), (233, 2), (234, 1)], [], [(0, 1), (1, 1), (2, 1), (4, 2), (9, 2), (10, 2), (12, 1), (14, 2), (15, 2), (16, 1), (19, 1), (24, 2), (25, 1), (63, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (1, 2), (2, 2), (4, 1), (7, 1), (9, 1), (12, 1), (14, 2), (15, 1), (16, 1), (17, 1), (19, 2), (24, 1), (25, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [], [], [(0, 1), (1, 1), (2, 1), (4, 2), (7, 2), (8, 2), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (19, 1), (24, 2), (25, 1), (63, 1), (65, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (2, 1), (5, 1), (7, 1), (8, 2), (9, 1), (10, 2), (12, 2), (14, 1), (16, 2), (19, 2), (24, 1), (25, 2), (63, 1), (71, 1), (121, 1), (233, 1), (234, 2)], [], [], [(0, 2), (1, 2), (2, 2), (4, 1), (7, 1), (8, 1), (9, 1), (12, 2), (14, 1), (16, 2), (19, 2), (24, 1), (25, 2), (63, 1), (121, 1), (127, 1), (233, 1), (234, 2)], [], [(0, 2), (1, 2), (5, 2), (7, 1), (8, 1), (9, 1), (14, 1), (15, 1), (16, 2), (17, 2), (19, 2), (24, 2), (25, 1), (51, 1), (63, 2), (121, 1), (233, 1), (234, 2)], [(1, 2), (4, 1), (5, 1), (8, 1), (10, 1), (14, 1), (15, 1), (16, 2), (17, 2), (19, 2), (24, 1), (25, 2), (63, 2), (121, 1), (233, 2), (234, 1), (314, 1)], [(0, 2), (1, 2), (4, 1), (5, 1), (7, 1), (8, 1), (9, 1), (14, 1), (15, 1), (16, 1), (19, 2), (24, 2), (25, 1), (44, 1), (63, 1), (121, 2), (233, 2), (234, 1)], [(1, 2), (4, 1), (5, 1), (7, 1), (9, 1), (12, 2), (14, 2), (15, 1), (16, 1), (19, 2), (24, 2), (25, 1), (63, 2), (64, 2), (99, 1), (121, 2), (233, 2), (234, 1)], [(1, 2), (2, 2), (4, 1), (5, 1), (7, 1), (8, 1), (9, 1), (14, 1), (15, 1), (16, 1), (19, 2), (24, 2), (25, 1), (63, 2), (64, 2), (121, 2), (157, 1), (233, 2), (234, 1)], [], [(1, 1), (4, 2), (5, 1), (7, 1), (9, 1), (12, 2), (14, 2), (15, 2), (19, 2), (24, 2), (25, 1), (63, 2), (64, 2), (121, 2), (216, 1), (233, 2), (234, 1)], [], [], [], [], [], [(2, 1), (5, 2), (7, 2), (8, 2), (10, 1), (15, 1), (63, 1), (72, 2), (121, 2), (233, 2), (234, 1), (293, 1)], [], [], [], [], [(2, 1), (5, 2), (13, 1), (14, 2), (15, 2), (16, 1), (24, 2), (25, 1)], [], [], [], [], [(2, 1), (5, 2), (65, 2), (68, 1)], [], [], [], [(2, 1), (5, 2), (7, 2), (8, 2), (10, 1), (11, 1)], [], [], [], [], [], [], []] + +def comb21 : List (List (Nat × Nat)) := [[], [], [], [(2, 1), (3, 2), (7, 1), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (57, 1), (173, 1), (233, 1), (234, 2)], [(2, 1), (3, 2), (7, 1), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (57, 1), (233, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 1), (8, 1), (9, 1), (10, 1), (12, 2), (13, 2), (14, 1), (19, 1), (24, 1), (25, 2), (57, 1)], [(2, 1), (3, 2), (7, 1), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (24, 1), (57, 1)], [], [], [(2, 1), (3, 2), (7, 1), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (57, 1), (63, 1)], [], [], [(2, 1), (3, 2), (7, 2), (8, 2), (10, 1), (12, 2), (13, 2), (14, 1), (57, 1)], [(2, 1), (3, 2), (7, 1), (8, 2), (10, 2), (12, 2), (13, 2), (14, 1), (57, 1)], [(2, 2), (3, 1), (7, 1), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (57, 2)], [(2, 2), (3, 1), (7, 2), (8, 2), (10, 1), (12, 1), (13, 1), (14, 2), (57, 2)], [(2, 1), (3, 2), (7, 1), (8, 2), (10, 2), (12, 2), (13, 1), (14, 1), (57, 2)], [], [(0, 1), (7, 1), (9, 1), (10, 2), (12, 2), (13, 2), (14, 1), (24, 1), (25, 2), (63, 1), (64, 1), (121, 1), (233, 1), (234, 2)], [(0, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (13, 2), (14, 1), (24, 1), (25, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [(0, 2), (2, 2), (3, 1), (7, 1), (9, 1), (10, 2), (12, 2), (13, 2), (14, 1), (24, 1), (25, 2), (57, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [(0, 1), (3, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (24, 1), (25, 2), (57, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [], [], [(0, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (13, 2), (14, 1), (24, 2), (25, 1), (63, 1), (121, 2), (233, 1), (234, 2)], [(0, 1), (2, 2), (3, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (13, 2), (14, 1), (15, 1), (24, 2), (25, 1), (57, 2), (60, 1), (63, 2), (65, 2), (121, 1), (233, 1), (234, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (13, 2), (14, 1), (24, 2), (25, 1), (57, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [], [], [(0, 1), (2, 2), (3, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (13, 2), (14, 1), (15, 1), (24, 2), (25, 1), (57, 2), (63, 2), (121, 1), (233, 1), (234, 2)], [], [], [], [(1, 2), (2, 1), (3, 2), (8, 1), (10, 1), (19, 2), (21, 1), (24, 1), (25, 2), (57, 1), (63, 1), (121, 2), (233, 2), (234, 1)], [(0, 2), (1, 2), (7, 1), (8, 2), (9, 1), (12, 2), (13, 2), (14, 1), (24, 1), (25, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [(0, 2), (2, 2), (3, 1), (7, 1), (9, 1), (10, 2), (12, 2), (13, 2), (14, 1), (24, 1), (25, 2), (57, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (2, 2), (3, 1), (8, 2), (9, 1), (15, 2), (24, 1), (25, 2), (57, 2), (63, 1), (65, 1), (121, 2), (233, 2), (234, 1)], [], [], [(0, 2), (2, 2), (3, 1), (8, 2), (9, 1), (15, 2), (24, 1), (25, 2), (57, 2), (60, 2), (63, 1), (65, 1), (117, 1), (121, 2), (233, 2), (234, 1)], [], [], [], [], [(0, 2), (2, 1), (3, 2), (8, 1), (9, 2), (24, 2), (25, 1), (57, 1), (63, 1), (64, 2), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2)], [(0, 2), (2, 2), (3, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 2), (13, 2), (14, 1), (24, 2), (25, 1), (57, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [(0, 2), (2, 2), (3, 1), (8, 2), (9, 1), (13, 2), (14, 1), (24, 2), (25, 1), (57, 2), (63, 1), (121, 2), (233, 2), (234, 1)], [], [], [], [], [], [], [(0, 2), (2, 1), (3, 2), (8, 1), (9, 1), (19, 2), (22, 1), (24, 1), (25, 2), (57, 1), (63, 2), (121, 1), (233, 1), (234, 2)], [(0, 2), (2, 1), (3, 1), (8, 2), (9, 1), (13, 2), (14, 1), (24, 2), (25, 1), (57, 2), (63, 1), (65, 1), (66, 1), (67, 2), (121, 2), (233, 2), (234, 1)], [], [], [], [], [(0, 2), (2, 1), (3, 2), (8, 2), (9, 1), (19, 2), (24, 1), (25, 2), (57, 1), (63, 1), (80, 1), (121, 1), (233, 1), (234, 2)], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (8, 1), (9, 1), (10, 1), (19, 2), (24, 1), (25, 2), (57, 2), (63, 1), (121, 1), (137, 1), (233, 1), (234, 2)], [(0, 1), (6, 2), (7, 2), (8, 1), (9, 2), (10, 1), (12, 2), (13, 1), (14, 1), (24, 2), (25, 1), (51, 1), (57, 1), (63, 2), (121, 1), (233, 1), (234, 2)], [(0, 2), (7, 1), (8, 1), (9, 1), (10, 2), (12, 2), (13, 1), (14, 1), (24, 1), (25, 2), (63, 2), (121, 1), (233, 2), (234, 1), (314, 1)], [(0, 1), (6, 2), (7, 2), (8, 1), (9, 2), (10, 1), (12, 2), (13, 1), (14, 1), (24, 2), (25, 1), (44, 1), (57, 1), (63, 1), (121, 2), (233, 2), (234, 1)], [(0, 2), (7, 2), (9, 2), (10, 1), (12, 1), (13, 1), (14, 2), (24, 2), (25, 1), (63, 2), (64, 2), (99, 1), (121, 2), (233, 2), (234, 1)], [(0, 2), (2, 2), (3, 1), (6, 2), (7, 2), (8, 1), (9, 2), (10, 1), (12, 2), (13, 1), (14, 1), (24, 2), (25, 1), (63, 2), (64, 2), (121, 2), (157, 1), (233, 2), (234, 1)], [(0, 2), (2, 2), (3, 1), (6, 2), (7, 2), (8, 1), (9, 2), (10, 1), (12, 2), (13, 1), (14, 1), (24, 2), (25, 1), (63, 2), (64, 2), (121, 2), (233, 2), (234, 1), (392, 1)], [], [], [], [], [], [], [], [(2, 1), (3, 2), (7, 1), (10, 2), (12, 2), (14, 1), (172, 1), (173, 2), (233, 2), (234, 1)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (7, 1), (9, 2), (12, 2), (14, 1), (18, 1), (19, 2), (24, 2), (25, 1)], [], [], [], [], [(2, 1), (3, 2), (7, 1), (10, 2), (12, 2), (14, 1), (65, 2), (67, 1)], [], [], [], [(2, 1), (3, 2), (6, 1), (8, 2), (12, 2), (14, 1)], [], [], [(7, 1), (10, 2), (12, 2), (14, 1)], [], [], []] + +def comb22 : List (List (Nat × Nat)) := [[(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (18, 2), (19, 1), (24, 2), (57, 2), (65, 1), (66, 2), (68, 2), (71, 2), (72, 1), (74, 1), (75, 1), (127, 1), (131, 2), (233, 1)], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (18, 2), (19, 1), (24, 1), (57, 2), (65, 1), (66, 2), (68, 2), (71, 2), (72, 1), (74, 1), (75, 1), (127, 1), (131, 2), (233, 2)], [], [], [], [], [], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (19, 2), (24, 1), (57, 2), (63, 1), (65, 2), (66, 1), (68, 1), (72, 2), (233, 1)], [(0, 2), (2, 1), (18, 2), (19, 2), (20, 1), (24, 1), (57, 2), (66, 1), (72, 2), (75, 1), (233, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (7, 1), (18, 2), (19, 2), (24, 1), (57, 2), (65, 2), (68, 1), (75, 1), (233, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (18, 2), (19, 2), (24, 1), (57, 2), (65, 2), (66, 1), (68, 1), (72, 2), (75, 1), (233, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (18, 2), (19, 2), (24, 1), (57, 2), (65, 2), (68, 1), (71, 1), (74, 2), (75, 1), (127, 2), (131, 1), (233, 1)], [(1, 1), (6, 1), (7, 2), (18, 1), (24, 1), (57, 2), (63, 2), (71, 1), (74, 2), (75, 2), (127, 2), (131, 1), (233, 1)], [(0, 1), (1, 1), (2, 2), (6, 1), (7, 2), (18, 1), (24, 1), (57, 2), (63, 2), (66, 1), (71, 1), (72, 2), (74, 2), (75, 2), (127, 2), (131, 1), (233, 1)], [(1, 1), (6, 1), (7, 2), (18, 1), (24, 1), (57, 2), (63, 2), (65, 2), (68, 1), (71, 1), (74, 2), (75, 2), (127, 2), (131, 1), (233, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (18, 1), (19, 2), (57, 1), (60, 2), (71, 2), (74, 1), (75, 2), (127, 2), (131, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (18, 1), (19, 2), (57, 1), (60, 2), (71, 1), (74, 2), (75, 2)], [(0, 2), (2, 1), (6, 2), (7, 1), (18, 2), (19, 1), (57, 1), (60, 2), (63, 1), (65, 2), (68, 1), (71, 1), (74, 2), (75, 1)], [(3, 2), (4, 1), (6, 2), (7, 1), (18, 2), (19, 1), (57, 1), (60, 2), (63, 1), (66, 1), (71, 1), (72, 2), (74, 2), (75, 1)], [(0, 2), (5, 1), (6, 2), (7, 1), (18, 2), (19, 1), (57, 1), (60, 2), (63, 1), (71, 1), (74, 2), (75, 1)], [(3, 2), (4, 1), (18, 1), (19, 1), (24, 1), (57, 1), (60, 2), (66, 1), (67, 2), (71, 2), (72, 2), (74, 1), (75, 2), (121, 1), (127, 2), (131, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (18, 1), (19, 1), (24, 1), (57, 1), (60, 2), (65, 2), (68, 1), (71, 2), (74, 1), (75, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (18, 1), (19, 1), (24, 1), (57, 1), (58, 1), (60, 1), (66, 1), (71, 2), (72, 2), (74, 1), (75, 2)], [], [], [], [], [], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (19, 2), (57, 1), (60, 1), (63, 2), (127, 2), (131, 1), (233, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (19, 2), (57, 1), (60, 1), (63, 2), (71, 2), (74, 1), (233, 1)], [(2, 1), (3, 1), (4, 2), (18, 1), (19, 1), (57, 1), (60, 1), (66, 1), (71, 2), (72, 2), (74, 1), (75, 2), (233, 1)], [(0, 2), (2, 1), (3, 2), (4, 2), (18, 1), (19, 1), (57, 1), (60, 1), (71, 2), (74, 1), (75, 2), (233, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [(1, 2), (19, 2), (24, 2), (60, 1), (65, 1), (68, 2), (71, 1), (72, 1), (74, 2), (127, 1), (131, 2), (233, 2)], [(1, 2), (3, 1), (4, 2), (19, 2), (24, 2), (60, 1), (65, 1), (66, 2), (71, 1), (72, 1), (74, 2), (127, 1), (131, 2), (233, 2)], [(1, 2), (2, 1), (5, 2), (19, 2), (24, 2), (60, 1), (66, 2), (67, 1), (71, 1), (72, 1), (74, 2), (127, 1), (131, 2), (233, 2)], [(1, 2), (3, 1), (4, 2), (19, 2), (24, 2), (60, 1), (65, 1), (66, 2), (68, 2), (71, 1), (72, 1), (73, 1), (74, 2), (127, 1), (131, 2), (233, 2)], [(0, 1), (1, 2), (5, 2), (19, 2), (24, 2), (60, 1), (65, 1), (68, 2), (71, 1), (127, 1), (131, 2), (233, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (5, 2), (19, 2), (24, 2), (58, 2), (60, 2), (66, 2), (72, 1), (80, 1), (127, 1), (131, 2), (233, 2)], [(1, 2), (3, 1), (4, 2), (19, 2), (24, 2), (60, 1), (65, 1), (66, 2), (68, 2), (71, 1), (72, 1), (74, 2), (127, 1), (130, 1), (131, 2), (233, 2)], [(0, 1), (1, 2), (5, 2), (19, 2), (24, 2), (60, 1), (65, 1), (68, 2), (71, 1), (74, 2), (127, 1), (233, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (5, 2), (19, 2), (24, 2), (58, 2), (60, 2), (66, 2), (71, 1), (72, 1), (74, 2), (137, 1), (233, 2)], [(0, 1), (2, 2), (6, 2), (7, 1), (24, 2), (51, 1), (60, 2), (65, 2), (66, 1), (68, 1), (71, 2), (72, 2), (74, 1), (127, 2), (131, 1), (233, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (18, 2), (19, 1), (24, 1), (57, 2), (60, 1), (63, 2), (65, 2), (67, 1), (68, 1), (75, 1), (121, 2), (127, 2), (131, 1), (233, 2), (314, 1)], [(1, 1), (3, 2), (4, 1), (18, 2), (24, 2), (44, 1), (60, 1), (63, 2), (65, 2), (66, 1), (68, 1), (72, 2), (75, 1), (127, 2), (131, 1), (233, 2)], [], [], [], [], [], [], [], [(1, 2), (6, 2), (7, 1), (18, 1), (57, 1), (63, 1), (71, 2), (74, 1), (75, 2), (127, 1), (131, 2), (233, 2)], [(6, 2), (18, 1), (63, 1), (75, 2), (114, 1), (233, 2)], [(65, 1), (68, 2), (233, 2), (293, 1)], [(0, 2), (2, 1), (66, 2), (72, 1), (172, 1), (233, 2)], [], [], [(18, 1), (24, 2), (63, 1), (75, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (13, 1), (19, 1), (24, 2), (65, 1), (68, 2)], [(0, 2), (2, 1), (18, 1), (24, 2), (66, 2), (72, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb23 : List (List (Nat × Nat)) := [[], [(1, 2), (2, 1), (6, 1), (7, 1), (11, 2), (15, 2), (16, 2), (20, 2), (24, 2), (57, 2), (63, 2), (127, 1), (131, 2), (233, 1)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (6, 2), (7, 1), (11, 2), (15, 2), (16, 2), (20, 2), (24, 1), (44, 2), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [], [], [], [], [(1, 1), (2, 2), (6, 1), (7, 2), (8, 2), (11, 1), (16, 2), (18, 2), (20, 1), (24, 1), (57, 2), (75, 1), (233, 1)], [(3, 2), (4, 1), (6, 1), (8, 1), (15, 1), (16, 2), (24, 1), (57, 2), (60, 2), (63, 1), (64, 2), (66, 1), (77, 1), (233, 1)], [(1, 1), (2, 2), (6, 1), (7, 2), (8, 1), (11, 1), (16, 2), (20, 1), (24, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [], [(1, 1), (2, 2), (6, 1), (7, 2), (8, 1), (11, 1), (15, 1), (16, 1), (20, 1), (24, 1), (57, 2), (63, 1), (127, 2), (131, 1), (233, 1)], [(6, 1), (8, 1), (15, 1), (16, 2), (24, 1), (57, 2), (63, 1), (127, 2), (131, 1), (233, 1)], [(6, 2), (15, 1), (16, 2), (24, 1), (57, 2), (63, 1), (127, 2), (131, 1), (233, 1)], [(1, 1), (2, 2), (6, 1), (7, 2), (8, 1), (11, 1), (16, 2), (20, 1), (24, 1), (57, 2), (63, 1), (127, 2), (131, 1), (233, 1)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (8, 2), (15, 1), (16, 1), (20, 1), (24, 2), (34, 1), (44, 2), (64, 1), (66, 2), (127, 2), (131, 1)], [], [(0, 2), (1, 1), (3, 2), (4, 1), (6, 1), (7, 2), (16, 2), (20, 1), (24, 2), (34, 1), (44, 2)], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (11, 1), (16, 1), (20, 2), (24, 2), (34, 1), (44, 2)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (15, 1), (16, 1), (20, 1), (24, 2), (34, 1), (44, 2)], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (15, 1), (16, 1), (20, 1), (24, 2), (34, 1), (44, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 2), (16, 1), (20, 2), (24, 2), (34, 2), (44, 2), (121, 1), (127, 2), (131, 1)], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (15, 2), (16, 2), (20, 2), (24, 2), (34, 2), (44, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (16, 1), (20, 2), (24, 2), (34, 2), (44, 2)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 2), (6, 1), (7, 1), (16, 1), (20, 2), (24, 2), (34, 2), (44, 2)], [], [], [], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (7, 2), (8, 1), (15, 1), (20, 2), (24, 2), (34, 1), (44, 1), (57, 2), (63, 1), (127, 2), (131, 1), (233, 1)], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (11, 1), (15, 2), (16, 1), (24, 1), (34, 2), (44, 1), (57, 2), (60, 1), (233, 1)], [(0, 1), (1, 2), (3, 1), (4, 2), (7, 1), (8, 2), (16, 1), (20, 2), (24, 1), (34, 2), (44, 1), (57, 2), (58, 1), (233, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (16, 1), (20, 2), (24, 1), (34, 2), (44, 1), (57, 2), (66, 1), (233, 1)], [], [], [], [], [], [], [], [], [], [], [(0, 2), (1, 1), (3, 2), (4, 1), (7, 2), (15, 2), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 1), (8, 2), (10, 1), (15, 2), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [(0, 2), (1, 1), (3, 2), (4, 1), (7, 2), (11, 2), (15, 2), (16, 1), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (11, 2), (15, 2), (17, 1), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (7, 1), (15, 1), (16, 1), (20, 1), (22, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [], [], [], [], [], [], [(0, 2), (1, 1), (3, 2), (4, 1), (7, 2), (11, 2), (15, 2), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (130, 1), (131, 2), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (11, 2), (15, 2), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (127, 1), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (11, 2), (15, 2), (20, 1), (34, 2), (44, 1), (57, 1), (63, 2), (137, 1), (233, 2)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 1), (11, 1), (15, 1), (17, 2), (20, 2), (24, 1), (34, 1), (44, 2), (51, 1), (57, 2), (63, 1), (127, 2), (131, 1), (233, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (7, 1), (8, 2), (11, 1), (15, 2), (16, 2), (17, 2), (20, 2), (24, 1), (44, 2), (57, 1), (63, 2), (121, 2), (127, 2), (131, 1), (233, 2), (314, 1)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (11, 1), (15, 1), (16, 2), (34, 2), (44, 1), (63, 2), (64, 2), (66, 1), (99, 1), (127, 2), (131, 1), (233, 2)], [], [], [], [], [], [(6, 2), (8, 2), (15, 2), (16, 1), (57, 1), (63, 2), (127, 1), (131, 2), (233, 2)], [], [(6, 2), (8, 1), (114, 1), (233, 2)], [(1, 2), (2, 1), (6, 2), (7, 1), (11, 2), (15, 1), (20, 2), (24, 1), (34, 2), (44, 1), (57, 1), (58, 2), (233, 2), (293, 1)], [(6, 2), (8, 1), (172, 1), (233, 2)], [], [(6, 2), (8, 2), (15, 2), (16, 1), (24, 2), (57, 1), (63, 2), (127, 1), (131, 2)], [(8, 1), (24, 2)], [(1, 2), (2, 1), (7, 1), (11, 2), (13, 1), (16, 1), (20, 2), (24, 2)], [(6, 2), (8, 1), (18, 1), (24, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb24 : List (List (Nat × Nat)) := [[], [], [(1, 2), (4, 2), (6, 1), (7, 1), (15, 1), (16, 2), (24, 2), (57, 1), (60, 2), (63, 2), (65, 2), (71, 1), (74, 2), (114, 1), (233, 1)], [], [], [], [], [(1, 2), (4, 2), (6, 2), (7, 1), (15, 1), (16, 2), (24, 1), (57, 1), (60, 2), (63, 2), (65, 2), (71, 1), (74, 2), (233, 2)], [], [], [], [], [(1, 2), (2, 1), (3, 2), (6, 2), (7, 1), (11, 1), (15, 1), (16, 2), (24, 1), (57, 2), (63, 1), (64, 2), (65, 2), (77, 1), (233, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (15, 1), (16, 2), (24, 1), (57, 2), (63, 1), (65, 2), (233, 1)], [], [(1, 2), (2, 2), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 1), (15, 1), (16, 1), (20, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (71, 2), (74, 1), (233, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (15, 2), (16, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 1), (71, 2), (74, 1), (233, 1)], [(1, 1), (4, 1), (6, 1), (7, 2), (8, 1), (15, 2), (16, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 1), (71, 2), (74, 1), (233, 1)], [], [(1, 2), (2, 1), (3, 2), (6, 2), (7, 1), (15, 1), (16, 2), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (71, 2), (74, 1), (233, 1)], [(1, 2), (6, 2), (7, 1), (15, 1), (16, 2), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (71, 2), (74, 1), (233, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (15, 1), (16, 2), (24, 1), (57, 2), (63, 1), (65, 2), (71, 2), (74, 1), (233, 1)], [(1, 1), (2, 2), (3, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (24, 2), (34, 1), (60, 2), (64, 1), (71, 2), (74, 1)], [(1, 2), (7, 1), (8, 1), (9, 2), (11, 1), (12, 2), (15, 1), (16, 2), (24, 2), (34, 1), (60, 1), (65, 1)], [], [(1, 1), (2, 1), (4, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (15, 2), (16, 1), (24, 2), (34, 1), (60, 1)], [(1, 1), (2, 2), (3, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (15, 2), (16, 1), (24, 2), (34, 1), (60, 2)], [(1, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (15, 2), (16, 1), (24, 2), (34, 1), (60, 2)], [], [], [], [(1, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (15, 1), (16, 2), (24, 2), (34, 2), (60, 1)], [], [], [(1, 1), (4, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (15, 2), (16, 1), (24, 2), (34, 2), (60, 1)], [(1, 1), (7, 2), (8, 1), (9, 2), (11, 2), (12, 1), (15, 2), (16, 1), (24, 2), (34, 2), (60, 2), (65, 2)], [], [], [], [], [(1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (24, 2), (34, 1), (57, 2), (60, 2), (63, 1), (65, 2), (71, 2), (74, 1), (233, 1)], [], [], [], [], [], [(1, 1), (4, 1), (6, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (15, 2), (16, 1), (24, 1), (34, 2), (60, 1), (65, 2), (114, 2), (117, 1), (233, 1)], [(1, 1), (2, 2), (3, 1), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (15, 2), (16, 1), (24, 1), (34, 2), (60, 2), (65, 2), (114, 2), (115, 1), (233, 1)], [(1, 1), (6, 1), (7, 2), (8, 1), (9, 2), (11, 2), (12, 1), (15, 2), (16, 1), (24, 1), (34, 2), (60, 2), (64, 2), (65, 2), (114, 2), (120, 1), (233, 1)], [], [], [], [], [(2, 2), (3, 1), (4, 2), (6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (74, 2), (233, 2)], [(6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (74, 2), (233, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (74, 2), (233, 2)], [], [], [(4, 2), (6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (16, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (74, 2), (233, 2)], [(2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (17, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (74, 2), (233, 2)], [(1, 1), (4, 2), (6, 2), (8, 1), (9, 2), (10, 2), (11, 1), (12, 1), (15, 2), (16, 1), (22, 1), (34, 2), (57, 1), (63, 2), (65, 2), (71, 1), (74, 2), (233, 2)], [], [], [], [(4, 2), (6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (73, 1), (74, 2), (233, 2)], [(2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (71, 1), (233, 2)], [(2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (34, 2), (57, 1), (60, 1), (63, 2), (65, 1), (80, 1), (233, 2)], [], [], [], [(1, 2), (4, 1), (6, 1), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (17, 2), (24, 1), (34, 1), (51, 1), (57, 2), (60, 2), (63, 1), (65, 2), (71, 2), (74, 1), (233, 1)], [(4, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (17, 2), (34, 1), (57, 1), (60, 2), (63, 1), (65, 2), (71, 2), (74, 1), (233, 2), (314, 1)], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (12, 1), (15, 1), (16, 2), (34, 2), (57, 1), (63, 2), (64, 2), (71, 2), (74, 1), (114, 2), (157, 1), (233, 2)], [], [], [], [], [(1, 1), (2, 2), (3, 1), (6, 1), (7, 2), (15, 2), (16, 1), (57, 1), (60, 2), (63, 2), (65, 1), (71, 1), (74, 2), (233, 2)], [(2, 1), (3, 2), (57, 1), (233, 2)], [], [(5, 2), (6, 2), (7, 2), (9, 2), (10, 1), (12, 1), (24, 1), (34, 2), (64, 1), (65, 1), (114, 1), (120, 2), (233, 2), (293, 1)], [(2, 1), (3, 2), (172, 1), (233, 2)], [], [(1, 1), (2, 2), (3, 1), (6, 1), (7, 2), (15, 2), (16, 1), (24, 2), (57, 1), (60, 2), (63, 2), (65, 1), (71, 1), (74, 2)], [], [(1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (13, 1), (15, 2), (16, 1), (24, 2), (65, 1)], [(2, 1), (3, 2), (18, 1), (24, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb25 : List (List (Nat × Nat)) := [[], [], [], [], [], [], [], [], [(1, 2), (4, 2), (6, 1), (7, 1), (11, 2), (12, 1), (13, 1), (14, 2), (15, 2), (16, 1), (17, 2), (24, 1), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [], [], [(0, 1), (9, 2), (11, 1), (14, 1), (16, 2), (18, 2), (19, 2), (24, 1), (57, 2), (75, 1), (233, 1)], [], [(0, 2), (1, 2), (4, 1), (6, 2), (7, 1), (9, 1), (11, 1), (14, 2), (16, 1), (19, 1), (24, 1), (57, 2), (63, 1), (233, 1)], [(0, 1), (1, 2), (7, 1), (8, 2), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (17, 1), (19, 2), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 1)], [], [(0, 2), (1, 1), (4, 1), (7, 2), (8, 2), (9, 1), (12, 2), (15, 1), (17, 1), (19, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 1)], [(0, 2), (1, 1), (4, 1), (6, 2), (7, 2), (9, 1), (12, 2), (15, 1), (17, 1), (19, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 1)], [(0, 2), (1, 2), (7, 1), (8, 2), (9, 1), (11, 1), (12, 2), (15, 1), (17, 1), (19, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 1)], [], [], [(0, 2), (1, 1), (4, 1), (7, 1), (8, 2), (9, 1), (11, 1), (12, 2), (15, 1), (17, 1), (19, 1), (24, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 1)], [(1, 2), (6, 2), (7, 2), (8, 1), (9, 2), (12, 2), (13, 1), (14, 2), (16, 1), (17, 1), (24, 2), (34, 1), (60, 1), (64, 1), (65, 2), (68, 1), (71, 2)], [(6, 2), (7, 1), (8, 1), (11, 1), (13, 1), (14, 1), (15, 2), (16, 2), (24, 2), (34, 1)], [(0, 1), (1, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 2), (16, 2), (24, 2), (34, 1)], [], [(6, 1), (7, 2), (8, 2), (13, 1), (15, 2), (24, 2), (34, 1)], [(6, 2), (7, 2), (8, 1), (12, 2), (13, 1), (14, 1), (15, 2), (16, 2), (17, 1), (24, 2), (34, 1)], [], [(0, 1), (1, 2), (6, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 2), (16, 2), (19, 2), (24, 2), (34, 2), (60, 1), (65, 2), (68, 1)], [], [], [], [], [(0, 1), (1, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 2), (16, 2), (19, 2), (24, 2), (34, 2)], [], [(0, 1), (7, 2), (9, 2), (12, 1), (13, 1), (15, 1), (19, 2), (24, 2), (34, 2)], [(0, 1), (6, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 1), (19, 2), (24, 2), (34, 2)], [], [], [], [], [], [(0, 1), (1, 2), (6, 2), (7, 2), (9, 2), (11, 1), (12, 2), (13, 2), (14, 2), (15, 2), (16, 1), (17, 1), (19, 2), (24, 2), (34, 1), (57, 2), (60, 1), (63, 1), (71, 2), (233, 1)], [], [], [(0, 1), (1, 2), (4, 1), (6, 2), (7, 2), (9, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 1), (17, 1), (19, 2), (24, 2), (34, 1), (57, 2), (63, 1), (71, 2), (117, 1), (233, 1)], [], [], [(0, 1), (1, 2), (6, 1), (8, 1), (9, 2), (12, 2), (13, 2), (14, 1), (15, 2), (16, 2), (17, 1), (19, 2), (24, 2), (34, 1), (57, 2), (63, 1), (71, 2), (174, 1), (233, 1)], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 2), (9, 2), (12, 1), (13, 2), (14, 2), (15, 2), (16, 1), (17, 2), (19, 2), (24, 2), (34, 1), (57, 2), (63, 1), (71, 2), (233, 1), (236, 1)], [], [(0, 1), (1, 2), (4, 2), (6, 2), (8, 2), (11, 2), (12, 1), (13, 2), (14, 2), (16, 1), (17, 2), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [], [(0, 1), (1, 2), (6, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (17, 2), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [(0, 1), (1, 2), (4, 2), (5, 1), (6, 1), (9, 2), (11, 2), (12, 2), (13, 2), (14, 2), (16, 1), (17, 1), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [(0, 1), (1, 2), (4, 2), (6, 2), (8, 2), (9, 2), (12, 1), (13, 2), (17, 2), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [(0, 1), (1, 2), (4, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 1), (12, 2), (13, 2), (14, 2), (16, 1), (17, 1), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [], [], [(0, 1), (1, 2), (4, 2), (6, 2), (7, 2), (8, 2), (9, 2), (12, 2), (13, 2), (14, 2), (16, 1), (17, 1), (19, 2), (22, 1), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [], [(0, 1), (1, 2), (4, 2), (6, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (17, 2), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (71, 1), (233, 2)], [(0, 1), (1, 2), (4, 2), (6, 1), (9, 2), (11, 2), (12, 2), (13, 2), (14, 2), (16, 1), (17, 1), (19, 2), (34, 2), (57, 1), (60, 2), (63, 2), (67, 1), (71, 1), (233, 2)], [], [], [(0, 1), (1, 1), (4, 2), (6, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (15, 1), (17, 2), (19, 2), (34, 2), (57, 1), (63, 2), (80, 1), (233, 2)], [], [], [(0, 1), (1, 1), (4, 2), (6, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (15, 1), (17, 2), (19, 2), (34, 2), (57, 1), (63, 2), (137, 1), (233, 2)], [(4, 1), (7, 1), (8, 1), (11, 1), (12, 2), (13, 1), (14, 1), (16, 2), (17, 1), (24, 1), (34, 1), (51, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 1)], [(1, 1), (4, 1), (6, 1), (8, 1), (11, 1), (12, 2), (13, 1), (14, 1), (16, 2), (17, 1), (34, 1), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (233, 2), (314, 1)], [], [], [], [(0, 1), (1, 1), (4, 1), (7, 1), (8, 1), (11, 1), (12, 2), (13, 1), (14, 1), (15, 2), (16, 2), (17, 1), (19, 2), (34, 2), (57, 1), (60, 1), (63, 2), (64, 2), (65, 2), (68, 1), (71, 2), (233, 2), (392, 1)], [], [], [], [(0, 2), (1, 1), (7, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (17, 2), (19, 1), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (233, 2)], [(0, 2), (9, 1), (11, 2), (14, 2), (16, 1), (19, 1), (57, 1), (233, 2)], [(0, 2), (1, 1), (4, 2), (7, 2), (9, 1), (14, 2), (16, 1), (19, 1), (114, 1), (233, 2)], [], [(172, 1), (233, 2)], [], [(0, 2), (1, 1), (7, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (17, 2), (19, 1), (24, 2), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1)], [(0, 2), (1, 1), (4, 2), (6, 1), (7, 2), (9, 1), (14, 2), (16, 1), (19, 1), (24, 2)], [], [(18, 1), (24, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb26 : List (List (Nat × Nat)) := [[], [], [], [(0, 2), (2, 1), (6, 2), (8, 2), (9, 1), (13, 1), (14, 2), (24, 1), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (172, 1), (233, 1)], [], [], [], [], [], [(0, 2), (2, 1), (6, 2), (8, 2), (9, 1), (13, 1), (14, 2), (18, 1), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(6, 1), (8, 2), (13, 1), (18, 2), (57, 2), (75, 1), (233, 1)], [(0, 1), (6, 1), (8, 1), (12, 2), (13, 1), (14, 1), (19, 2), (57, 2), (63, 1), (64, 2), (77, 1), (233, 1)], [(6, 1), (8, 1), (13, 2), (24, 2), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (8, 2), (9, 2), (13, 1), (14, 1), (57, 2), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 1)], [(0, 2), (2, 1), (8, 2), (9, 1), (13, 1), (14, 2), (19, 2), (20, 1), (57, 2), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 1)], [], [(0, 1), (2, 2), (8, 2), (9, 2), (13, 2), (14, 1), (24, 2), (57, 2), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 1)], [], [], [(0, 1), (2, 2), (6, 1), (8, 1), (9, 2), (13, 2), (14, 1), (24, 2), (57, 2), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 1)], [], [(0, 2), (2, 1), (3, 1), (18, 1), (19, 2), (24, 2), (34, 1), (64, 1), (66, 1), (71, 2), (72, 2), (74, 1)], [(0, 1), (2, 2), (3, 1), (6, 1), (8, 2), (9, 2), (14, 2), (18, 1), (19, 2), (24, 2), (34, 1)], [(0, 2), (2, 1), (3, 2), (9, 1), (14, 2), (18, 1), (19, 2), (24, 2), (34, 1)], [(0, 1), (2, 2), (3, 2), (9, 2), (14, 1), (18, 1), (19, 2), (24, 2), (34, 1)], [], [(0, 2), (2, 1), (3, 2), (9, 1), (13, 2), (14, 2), (18, 1), (19, 1), (22, 1), (34, 1)], [], [], [(0, 1), (2, 1), (3, 1), (9, 1), (12, 1), (13, 1), (14, 1), (18, 1), (19, 2), (24, 1), (34, 2), (58, 1), (66, 1), (72, 2)], [], [(0, 1), (2, 2), (3, 1), (6, 1), (8, 2), (9, 2), (13, 1), (14, 1), (18, 1), (19, 2), (24, 1), (34, 2)], [], [], [], [(0, 1), (2, 1), (3, 2), (9, 2), (12, 1), (13, 1), (18, 1), (19, 2), (24, 1), (34, 2)], [], [(0, 2), (2, 1), (3, 2), (9, 1), (14, 1), (18, 1), (19, 1), (21, 1), (24, 2), (34, 2)], [], [], [(2, 1), (3, 1), (8, 2), (13, 1), (18, 2), (19, 1), (24, 1), (34, 1), (57, 2), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 1)], [], [], [(0, 2), (2, 2), (3, 1), (6, 1), (8, 1), (9, 1), (12, 2), (13, 1), (18, 2), (19, 1), (24, 1), (34, 1), (57, 2), (63, 1), (71, 2), (74, 1), (233, 1)], [], [], [(2, 1), (3, 2), (8, 2), (12, 2), (13, 1), (18, 2), (19, 1), (24, 1), (34, 1), (57, 2), (58, 2), (63, 1), (71, 2), (74, 1), (115, 1), (233, 1)], [], [(0, 1), (2, 2), (3, 2), (9, 2), (13, 1), (18, 2), (19, 2), (20, 2), (34, 2), (172, 2), (174, 1), (233, 1)], [], [(0, 2), (2, 1), (3, 2), (9, 2), (14, 1), (18, 2), (19, 1), (24, 1), (34, 2), (64, 2), (172, 2), (181, 1), (233, 1)], [(0, 1), (2, 2), (3, 2), (6, 2), (8, 2), (13, 1), (18, 2), (19, 1), (24, 2), (34, 2), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [(0, 1), (2, 2), (3, 2), (6, 2), (8, 2), (9, 2), (13, 1), (14, 1), (18, 2), (19, 1), (24, 2), (34, 2), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(2, 2), (3, 2), (5, 1), (6, 2), (8, 2), (13, 2), (18, 2), (19, 2), (22, 2), (24, 1), (34, 2), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(3, 1), (8, 1), (10, 1), (13, 2), (18, 2), (19, 2), (22, 2), (24, 1), (34, 2), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(3, 1), (8, 1), (12, 2), (13, 2), (14, 1), (17, 1), (18, 2), (19, 2), (22, 2), (24, 1), (34, 2), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 2), (9, 2), (13, 1), (14, 1), (18, 2), (19, 1), (24, 2), (34, 2), (57, 1), (63, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(3, 1), (6, 2), (8, 2), (13, 2), (18, 2), (19, 2), (22, 2), (24, 1), (34, 2), (57, 1), (63, 2), (66, 2), (67, 1), (71, 1), (72, 1), (74, 2), (233, 2)], [], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 2), (9, 2), (13, 2), (14, 1), (18, 2), (19, 2), (22, 2), (24, 1), (34, 2), (57, 1), (63, 2), (71, 1), (233, 2)], [], [], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 2), (9, 2), (13, 2), (14, 1), (18, 2), (19, 2), (22, 2), (24, 1), (34, 2), (57, 1), (63, 2), (127, 1), (233, 2)], [], [(3, 2), (8, 1), (12, 1), (13, 2), (14, 2), (17, 2), (18, 1), (19, 1), (22, 1), (24, 2), (34, 1), (51, 1), (57, 2), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 1)], [(3, 2), (6, 1), (8, 1), (12, 1), (13, 2), (14, 2), (17, 2), (18, 1), (19, 1), (22, 1), (24, 1), (34, 1), (57, 1), (63, 1), (66, 1), (71, 2), (72, 2), (74, 1), (233, 2), (314, 1)], [], [], [], [], [(3, 2), (6, 1), (9, 1), (14, 2), (18, 2), (19, 1), (34, 2), (57, 1), (63, 2), (64, 2), (66, 1), (71, 2), (72, 2), (74, 1), (172, 2), (216, 1), (233, 2)], [], [], [(0, 2), (2, 1), (8, 1), (9, 1), (13, 2), (14, 2), (24, 1), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2), (233, 2)], [(6, 2), (8, 1), (13, 2), (24, 1), (57, 1), (233, 2)], [(6, 2), (8, 1), (13, 2), (24, 1), (114, 1), (233, 2)], [(5, 2), (8, 1), (12, 1), (13, 2), (14, 2), (18, 2), (22, 1), (24, 1), (57, 1), (63, 2), (71, 1), (74, 2), (233, 2), (293, 1)], [], [], [(0, 2), (2, 1), (8, 1), (9, 1), (13, 2), (14, 2), (57, 1), (63, 2), (66, 2), (71, 1), (72, 1), (74, 2)], [(8, 1), (13, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb27 : List (List (Nat × Nat)) := [[], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (8, 1), (13, 1), (18, 1), (57, 1), (63, 2), (172, 1), (233, 1)], [], [], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (8, 1), (13, 1), (24, 1), (57, 1), (63, 2), (172, 2)], [(13, 1), (18, 2), (57, 2), (75, 1), (172, 1)], [(0, 1), (1, 2), (6, 2), (7, 1), (13, 1), (19, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (172, 1)], [], [(8, 2), (13, 1), (57, 2), (63, 1), (172, 1)], [(0, 1), (2, 2), (6, 2), (9, 2), (11, 1), (12, 1), (13, 1), (15, 2), (19, 2), (20, 1), (57, 2), (63, 1), (172, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (13, 2), (18, 2), (57, 2), (63, 1), (172, 1)], [], [(8, 2), (13, 2), (18, 2), (57, 2), (63, 1), (172, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (8, 2), (13, 2), (18, 2), (57, 2), (63, 1), (172, 1)], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (9, 1), (11, 2), (12, 2), (19, 2), (34, 1), (64, 1), (65, 1), (68, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (19, 2), (34, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (7, 1), (9, 1), (11, 2), (12, 2), (19, 2), (34, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (7, 2), (9, 2), (11, 1), (12, 1), (19, 2), (34, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (8, 1), (9, 1), (11, 2), (12, 2), (13, 2), (18, 1), (19, 1), (34, 1)], [], [], [], [], [], [], [(0, 2), (2, 2), (3, 1), (7, 2), (9, 1), (11, 1), (12, 1), (13, 1), (19, 1), (24, 2), (25, 1), (34, 2)], [], [(0, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (13, 1), (19, 1), (24, 2), (25, 1), (34, 2)], [], [(0, 2), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1), (13, 1), (14, 1), (19, 1), (24, 2), (25, 1), (34, 2)], [(2, 2), (3, 1), (4, 2), (7, 2), (11, 2), (12, 1), (18, 1), (21, 1), (24, 2), (25, 1), (34, 2)], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (11, 2), (12, 2), (13, 1), (18, 2), (19, 2), (24, 1), (25, 2), (34, 1), (57, 2), (63, 1), (172, 1)], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (9, 2), (11, 1), (12, 2), (13, 1), (18, 2), (19, 2), (24, 1), (25, 2), (34, 1), (57, 2), (63, 1), (65, 2), (68, 1), (172, 1)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (7, 1), (8, 2), (9, 2), (11, 2), (12, 2), (13, 1), (18, 2), (19, 2), (24, 1), (25, 2), (34, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (120, 1), (172, 1)], [], [(0, 1), (2, 1), (6, 2), (7, 1), (8, 1), (9, 2), (11, 1), (13, 1), (15, 1), (18, 2), (19, 2), (20, 2), (34, 2), (172, 1), (233, 2), (236, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (6, 2), (7, 2), (9, 2), (11, 2), (12, 2), (19, 1), (24, 1), (25, 2), (34, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (172, 1), (181, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (18, 1), (19, 1), (34, 2), (57, 1), (63, 2), (172, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (18, 1), (19, 1), (34, 2), (57, 1), (63, 2), (172, 2)], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (9, 2), (11, 1), (12, 1), (13, 2), (19, 2), (34, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 2), (19, 2), (34, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (9, 2), (11, 1), (12, 1), (13, 2), (15, 1), (19, 2), (34, 2), (57, 1), (63, 2), (172, 2)], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (18, 1), (19, 1), (34, 2), (57, 1), (63, 2), (65, 1), (66, 1), (68, 2), (172, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (9, 2), (11, 1), (12, 1), (13, 2), (19, 2), (34, 2), (57, 1), (63, 2), (65, 1), (172, 2)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (9, 2), (11, 2), (12, 2), (13, 2), (14, 2), (19, 2), (34, 2), (57, 1), (63, 2), (65, 1), (68, 2), (73, 1), (172, 2)], [], [], [(0, 1), (1, 2), (4, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 2), (13, 2), (14, 2), (19, 2), (34, 2), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (120, 2), (130, 1), (172, 2)], [], [], [(0, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (13, 2), (19, 1), (34, 1), (51, 1), (57, 2), (63, 1), (172, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (13, 2), (18, 2), (19, 1), (34, 1), (57, 1), (63, 1), (172, 2), (314, 1)], [], [], [], [], [], [(0, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (18, 2), (19, 1), (34, 2), (57, 1), (63, 2), (64, 2), (65, 2), (68, 1), (172, 2), (233, 2), (274, 1)], [], [(8, 1), (13, 2), (18, 1), (57, 1), (63, 2), (172, 2)], [(13, 2), (18, 1), (57, 1), (172, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (13, 2), (18, 1), (114, 1), (172, 2)], [(0, 1), (1, 2), (4, 1), (8, 1), (9, 2), (13, 2), (18, 1), (19, 2), (24, 2), (25, 1), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (120, 2), (172, 2), (293, 1)], [], [], [(8, 1), (13, 2), (57, 1), (63, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (8, 1), (13, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb28 : List (List (Nat × Nat)) := [[(0, 2), (2, 1), (6, 2), (8, 2), (9, 1), (11, 2), (12, 2), (16, 1), (57, 1), (63, 2), (233, 1)], [(0, 2), (2, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (16, 1), (57, 1), (233, 1)], [], [], [], [], [], [(0, 1), (2, 2), (6, 1), (8, 2), (9, 2), (11, 1), (12, 1), (16, 2), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (6, 1), (8, 2), (9, 2), (12, 1), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (8, 2), (9, 2), (11, 1), (12, 1), (16, 2), (18, 1), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (6, 1), (8, 1), (9, 2), (11, 1), (12, 1), (16, 2), (24, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [], [], [], [], [(0, 1), (2, 2), (9, 2), (11, 1), (12, 1), (16, 2), (233, 1)], [(233, 1)], [(6, 1), (8, 2), (233, 1)], [(8, 2), (11, 1), (233, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (8, 1), (9, 1), (57, 1), (58, 1), (60, 1), (63, 2), (64, 1), (115, 2), (127, 2), (131, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (9, 2), (57, 1), (58, 1), (60, 1), (115, 2), (127, 2), (131, 1)], [], [], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (9, 1), (11, 1), (58, 1), (60, 2), (115, 2), (127, 2), (131, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (9, 1), (58, 2), (60, 1), (115, 2), (127, 2), (131, 1)], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (12, 2), (16, 1), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (6, 2), (8, 2), (9, 1), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [(0, 2), (2, 1), (3, 2), (4, 2), (6, 1), (9, 1), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (9, 1), (12, 1), (16, 2), (58, 2), (60, 2), (63, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [], [], [], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (9, 2), (11, 2), (58, 2), (60, 1), (115, 1), (117, 1), (127, 1), (131, 2), (233, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (9, 1), (58, 1), (60, 2), (115, 2), (127, 1), (131, 2), (233, 2)], [(0, 1), (2, 2), (3, 1), (4, 1), (6, 2), (9, 2), (58, 2), (60, 2), (64, 2), (115, 1), (120, 1), (127, 1), (131, 2), (233, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (8, 1), (9, 2), (11, 2), (12, 2), (16, 1), (58, 2), (60, 1), (115, 1), (127, 1), (131, 2), (174, 1), (233, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (9, 2), (11, 2), (12, 2), (16, 1), (58, 2), (60, 1), (115, 1), (127, 1), (131, 2), (233, 2), (236, 1)], [(0, 1), (2, 2), (3, 2), (6, 1), (12, 2), (16, 1), (58, 2), (60, 2), (64, 2), (115, 1), (127, 1), (131, 2), (181, 1), (233, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 1), (11, 1), (12, 1), (16, 2), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (8, 2), (9, 1), (12, 1), (16, 2), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [(0, 2), (3, 2), (4, 1), (5, 1), (6, 2), (9, 1), (12, 1), (16, 2), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [], [], [], [], [], [], [], [], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 2), (8, 2), (9, 2), (11, 2), (12, 2), (57, 1), (58, 1), (60, 1), (63, 2), (64, 1), (115, 2), (120, 2), (127, 2), (130, 1), (131, 1), (233, 2)], [(3, 1), (4, 2), (6, 1), (8, 1), (11, 2), (12, 2), (57, 1), (58, 2), (60, 1), (63, 2), (115, 1), (127, 2), (131, 2), (233, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (8, 1), (11, 2), (12, 2), (16, 1), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (115, 1), (127, 1), (131, 2), (137, 1), (233, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (9, 1), (11, 1), (51, 1), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1), (233, 1)], [], [(0, 2), (3, 2), (4, 1), (6, 2), (8, 2), (9, 1), (11, 1), (12, 1), (16, 2), (44, 1), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 2)], [(3, 2), (4, 1), (8, 1), (9, 1), (11, 1), (12, 1), (16, 2), (57, 1), (58, 2), (60, 2), (63, 1), (64, 2), (99, 1), (115, 1), (127, 1), (131, 2), (233, 2)], [], [], [], [], [(4, 2), (16, 1), (63, 1), (64, 2), (120, 1), (130, 2), (233, 2), (470, 1)], [], [], [(6, 2), (8, 1), (114, 1), (233, 2)], [(2, 1), (4, 1), (5, 2), (6, 2), (8, 1), (11, 2), (12, 2), (16, 1), (57, 1), (58, 2), (60, 2), (64, 1), (115, 1), (120, 2), (127, 1), (131, 2), (233, 2), (293, 1)], [(6, 2), (8, 1), (172, 1), (233, 2)], [], [], [], [], [], [], [], [(8, 1), (16, 2), (63, 2), (73, 1)], [(8, 1), (11, 2), (63, 2), (68, 1)], [(6, 2), (8, 1), (63, 2), (66, 1)], [], [], [], [], [], [], [], [], [], []] + +def comb29 : List (List (Nat × Nat)) := [[(0, 2), (2, 2), (4, 2), (11, 2), (13, 2), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [], [], [(0, 1), (2, 2), (4, 1), (8, 2), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (8, 2), (11, 1), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [], [(0, 1), (2, 1), (4, 1), (8, 1), (11, 1), (14, 2), (16, 1), (18, 2), (20, 2), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 1), (4, 1), (8, 1), (11, 1), (14, 2), (16, 1), (18, 1), (20, 2), (24, 1), (57, 2), (63, 1), (233, 1)], [], [(0, 2), (2, 2), (4, 2), (6, 1), (8, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 1), (16, 1), (18, 1), (20, 1), (57, 1), (63, 2), (64, 2), (65, 2), (68, 1), (77, 1), (233, 2)], [], [(8, 2), (13, 1), (57, 2), (63, 1), (233, 1)], [], [(2, 2), (4, 1), (6, 1), (8, 1), (13, 1), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [(2, 2), (4, 1), (8, 2), (13, 1), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (8, 1), (11, 1), (13, 1), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [], [], [(2, 2), (4, 1), (8, 1), (11, 1), (13, 1), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [(8, 2), (13, 1), (15, 1), (16, 2), (64, 1), (65, 2), (68, 1), (72, 1), (73, 1), (74, 2)], [], [], [(0, 2), (2, 1), (13, 1), (14, 2), (15, 1), (16, 2), (65, 2), (68, 1), (72, 2), (73, 2), (74, 1)], [], [], [(2, 2), (8, 2), (11, 1), (14, 1), (15, 2), (16, 1), (65, 2), (66, 1), (67, 2), (68, 1), (72, 1), (73, 1), (74, 2), (121, 1)], [], [(6, 2), (8, 1), (12, 1), (14, 2), (15, 1), (16, 2), (58, 1), (65, 2), (68, 1), (72, 1), (73, 2), (74, 1)], [], [], [], [(0, 2), (4, 1), (15, 2), (16, 1), (65, 2), (68, 1), (72, 2), (73, 2), (74, 1)], [], [(6, 2), (8, 1), (12, 1), (14, 2), (15, 1), (16, 2), (65, 2), (68, 1), (72, 2), (73, 2), (74, 1)], [(15, 1), (16, 2), (65, 2), (68, 1), (72, 2), (73, 2), (74, 1)], [], [], [], [], [], [], [(0, 2), (2, 1), (6, 1), (8, 1), (11, 2), (12, 2), (13, 2), (15, 2), (16, 2), (18, 1), (20, 2), (57, 1), (63, 2), (65, 1), (68, 2), (72, 2), (73, 1), (74, 2), (233, 2)], [(0, 2), (2, 1), (8, 2), (11, 2), (13, 2), (14, 2), (15, 2), (16, 2), (18, 1), (20, 2), (57, 1), (63, 2), (65, 1), (68, 2), (72, 2), (73, 2), (74, 1), (233, 2)], [], [(2, 1), (4, 2), (8, 1), (12, 2), (13, 2), (15, 2), (16, 2), (18, 1), (20, 2), (57, 1), (58, 2), (63, 2), (65, 1), (68, 2), (72, 2), (73, 1), (74, 2), (115, 1), (233, 2)], [(0, 2), (2, 1), (4, 2), (8, 2), (13, 2), (14, 2), (15, 2), (16, 2), (18, 1), (20, 2), (57, 1), (63, 2), (64, 2), (65, 1), (68, 2), (72, 2), (73, 2), (74, 1), (120, 1), (233, 2)], [], [], [(0, 2), (2, 1), (4, 2), (8, 2), (13, 2), (14, 2), (15, 2), (16, 2), (18, 1), (20, 2), (57, 1), (63, 2), (64, 2), (65, 1), (68, 2), (72, 2), (73, 2), (74, 1), (181, 1), (233, 2)], [], [(0, 1), (2, 2), (8, 1), (11, 1), (14, 2), (15, 2), (18, 2), (20, 1), (57, 2), (63, 1), (65, 1), (68, 2), (72, 1), (73, 1), (74, 2), (233, 1)], [], [], [], [], [(0, 1), (2, 2), (8, 2), (14, 1), (15, 2), (16, 1), (18, 2), (20, 1), (57, 2), (63, 1), (65, 1), (68, 2), (72, 1), (73, 1), (74, 2), (233, 1)], [(0, 1), (2, 2), (6, 1), (8, 1), (12, 2), (14, 2), (15, 2), (17, 1), (18, 2), (20, 1), (57, 2), (63, 1), (65, 1), (68, 2), (72, 1), (73, 1), (74, 2), (233, 1)], [], [], [(2, 1), (4, 2), (8, 1), (11, 2), (14, 2), (15, 1), (18, 1), (20, 2), (57, 1), (63, 2), (65, 2), (68, 2), (72, 1), (73, 1), (74, 2), (233, 2)], [(0, 2), (2, 2), (4, 2), (8, 2), (11, 2), (14, 1), (15, 1), (18, 1), (20, 2), (57, 1), (63, 2), (65, 1), (66, 2), (67, 1), (68, 2), (72, 2), (73, 2), (74, 1), (233, 2)], [], [], [(0, 2), (2, 2), (4, 2), (6, 1), (8, 1), (11, 2), (12, 2), (14, 2), (15, 2), (18, 1), (20, 1), (57, 1), (58, 2), (63, 2), (65, 1), (68, 2), (72, 2), (73, 1), (74, 2), (80, 1), (233, 2)], [], [], [(0, 2), (2, 2), (4, 2), (6, 1), (8, 1), (11, 2), (12, 2), (14, 2), (15, 2), (18, 1), (20, 1), (57, 1), (58, 2), (63, 2), (65, 1), (68, 2), (72, 2), (73, 1), (74, 2), (137, 1), (233, 2)], [(2, 2), (4, 1), (6, 2), (8, 2), (11, 1), (12, 1), (13, 1), (15, 1), (16, 1), (17, 2), (18, 2), (20, 1), (51, 1), (57, 2), (63, 1), (65, 2), (68, 1), (72, 2), (73, 2), (74, 1), (233, 1)], [], [(0, 1), (2, 1), (4, 1), (11, 1), (13, 1), (14, 2), (15, 2), (16, 2), (18, 1), (20, 2), (44, 1), (57, 1), (63, 2), (65, 1), (68, 2), (72, 1), (73, 1), (74, 2), (233, 2)], [], [], [(0, 2), (2, 1), (4, 1), (6, 2), (8, 1), (11, 1), (12, 1), (13, 1), (14, 1), (15, 1), (18, 1), (20, 2), (57, 1), (63, 2), (65, 2), (68, 1), (72, 1), (73, 2), (74, 1), (120, 2), (233, 2), (392, 1)], [], [], [(6, 2), (8, 2), (12, 1), (13, 2), (14, 2), (16, 1), (17, 2), (18, 1), (20, 2), (57, 1), (63, 2), (65, 1), (66, 1), (67, 2), (68, 2), (233, 2), (470, 1)], [], [(0, 2), (2, 1), (8, 1), (11, 2), (14, 2), (16, 1), (18, 1), (20, 2), (57, 1), (233, 2)], [(2, 1), (4, 2), (6, 2), (8, 1), (14, 2), (16, 1), (18, 1), (20, 2), (114, 1), (233, 2)], [], [(172, 1), (233, 2)], [], [(8, 1), (13, 2), (57, 1), (63, 2)], [], [], [], [], [(0, 1), (11, 2), (64, 1), (72, 2), (73, 2), (74, 1), (120, 2), (130, 1)], [(0, 1), (4, 2), (72, 2), (74, 1)], [], [(0, 1), (2, 2), (8, 2), (14, 1), (66, 1), (72, 2), (73, 2), (74, 1)], [], [], [], [], [], [], [], [], [], []] + +def comb30 : List (List (Nat × Nat)) := [[(6, 2), (18, 2), (57, 2), (63, 1), (233, 1)], [], [], [(0, 1), (1, 2), (6, 2), (7, 1), (8, 1), (12, 2), (13, 2), (18, 2), (19, 2), (57, 1), (60, 1), (63, 2), (65, 2), (68, 1), (71, 2), (73, 2), (74, 1), (172, 1), (233, 1)], [], [], [(0, 1), (1, 2), (3, 1), (7, 1), (8, 1), (12, 2), (13, 2), (19, 2), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (73, 2), (74, 1), (233, 1)], [(0, 1), (1, 2), (6, 1), (7, 1), (8, 1), (12, 2), (13, 2), (19, 2), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (73, 2), (74, 1), (233, 1)], [(0, 1), (1, 2), (6, 1), (7, 1), (12, 2), (19, 2), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (73, 2), (74, 1), (233, 1)], [], [(0, 2), (1, 1), (6, 1), (7, 2), (8, 2), (12, 1), (13, 1), (19, 1), (24, 1), (57, 2), (60, 2), (63, 1), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2), (233, 1)], [], [], [], [(0, 1), (1, 2), (7, 1), (8, 1), (12, 2), (13, 2), (18, 1), (19, 2), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (73, 2), (74, 1), (233, 1)], [(0, 1), (1, 2), (7, 2), (12, 2), (15, 2), (18, 1), (19, 1), (20, 1), (57, 2), (60, 1), (63, 1), (65, 2), (68, 1), (71, 2), (73, 2), (74, 1), (233, 1)], [], [(0, 2), (1, 1), (7, 2), (12, 1), (13, 1), (18, 1), (19, 1), (57, 2), (60, 2), (63, 1), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2), (233, 1)], [], [], [(0, 2), (1, 1), (6, 1), (7, 2), (8, 2), (12, 1), (13, 1), (18, 1), (19, 1), (57, 2), (60, 2), (63, 1), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2), (233, 1)], [], [(0, 1), (1, 1), (3, 1), (7, 1), (8, 2), (12, 2), (13, 1), (18, 1), (19, 2), (60, 2), (64, 1), (65, 1), (66, 1), (71, 1), (72, 2), (73, 1), (74, 2)], [], [], [], [(0, 1), (1, 1), (3, 1), (7, 1), (8, 2), (12, 2), (13, 1), (18, 1), (19, 2), (60, 2), (65, 1), (66, 1), (68, 1), (71, 1), (72, 2), (73, 1), (74, 2)], [], [(1, 1), (3, 1), (6, 1), (8, 2), (13, 1), (60, 2), (65, 2), (66, 2), (67, 2), (71, 1), (72, 1), (73, 1), (74, 2), (121, 1)], [(1, 1), (3, 2), (8, 1), (13, 2), (60, 2), (65, 1), (66, 1), (71, 2), (72, 2), (73, 2), (74, 1)], [], [], [(0, 1), (1, 1), (3, 1), (6, 1), (8, 2), (12, 2), (13, 1), (60, 2), (65, 1), (66, 1), (68, 1), (71, 1), (72, 2), (73, 1), (74, 2)], [], [], [], [(1, 1), (3, 2), (60, 2), (65, 1), (66, 1), (68, 1), (71, 1), (72, 2), (73, 1), (74, 2)], [], [(1, 1), (3, 2), (13, 2), (21, 1), (60, 1), (65, 2), (66, 1), (71, 2), (72, 2), (73, 2), (74, 1)], [], [], [(0, 2), (3, 1), (7, 2), (12, 2), (18, 1), (19, 1), (57, 2), (63, 1), (66, 2), (68, 1), (72, 1), (233, 1)], [], [(0, 1), (3, 2), (6, 2), (7, 1), (12, 2), (18, 2), (19, 2), (57, 1), (63, 2), (65, 1), (66, 2), (68, 1), (72, 1), (233, 2)], [], [(0, 1), (3, 2), (6, 2), (7, 1), (12, 2), (18, 2), (19, 2), (57, 1), (63, 2), (66, 2), (68, 2), (72, 1), (233, 2)], [(0, 1), (1, 1), (3, 1), (12, 2), (18, 2), (19, 2), (57, 1), (60, 2), (63, 2), (65, 1), (66, 2), (68, 1), (72, 1), (117, 1), (233, 2)], [], [(0, 1), (3, 1), (7, 1), (12, 2), (18, 2), (19, 2), (57, 1), (63, 2), (64, 2), (66, 2), (68, 2), (72, 1), (120, 1), (233, 2)], [], [(0, 2), (3, 1), (7, 1), (8, 2), (12, 1), (13, 1), (15, 1), (18, 2), (19, 2), (20, 2), (57, 1), (63, 2), (66, 2), (68, 2), (71, 2), (72, 1), (73, 2), (74, 1), (233, 2), (236, 1)], [], [], [], [(0, 1), (1, 1), (3, 1), (6, 1), (7, 1), (12, 2), (19, 2), (57, 2), (63, 1), (66, 2), (68, 1), (72, 1), (233, 1)], [], [(0, 1), (3, 2), (7, 2), (12, 2), (19, 2), (57, 2), (63, 1), (66, 2), (68, 1), (72, 1), (233, 1)], [], [(0, 1), (3, 2), (7, 1), (8, 1), (12, 2), (13, 2), (15, 1), (19, 2), (57, 2), (63, 1), (66, 2), (68, 1), (72, 1), (233, 1)], [], [(1, 1), (3, 2), (7, 1), (8, 1), (13, 1), (19, 2), (22, 1), (57, 2), (60, 2), (63, 1), (65, 1), (66, 2), (71, 1), (72, 1), (73, 1), (74, 2), (233, 1)], [(0, 2), (3, 1), (6, 2), (7, 2), (12, 1), (19, 1), (57, 1), (63, 2), (66, 2), (68, 1), (72, 2), (233, 2)], [], [(0, 2), (3, 1), (6, 2), (7, 2), (12, 1), (19, 1), (57, 1), (63, 2), (65, 2), (66, 1), (67, 1), (68, 2), (72, 2), (233, 2)], [], [(0, 2), (3, 1), (6, 2), (7, 2), (8, 2), (12, 1), (13, 1), (19, 1), (57, 1), (63, 2), (66, 2), (68, 2), (72, 1), (73, 2), (74, 1), (233, 2)], [], [], [(0, 2), (3, 1), (6, 2), (7, 2), (8, 2), (12, 1), (13, 1), (19, 1), (57, 1), (63, 2), (66, 2), (68, 2), (71, 2), (72, 1), (73, 2), (74, 1), (127, 1), (233, 2)], [], [(0, 2), (1, 2), (3, 2), (7, 2), (12, 1), (18, 1), (19, 1), (51, 1), (57, 2), (63, 1), (66, 1), (68, 2), (72, 2), (233, 1)], [], [(0, 2), (1, 2), (3, 2), (8, 1), (12, 1), (13, 2), (18, 1), (44, 1), (57, 1), (60, 1), (63, 2), (65, 2), (66, 2), (68, 2), (71, 2), (72, 1), (73, 2), (74, 1), (233, 2)], [], [], [], [(0, 2), (1, 2), (3, 2), (6, 1), (7, 2), (8, 1), (12, 1), (13, 2), (18, 1), (19, 1), (57, 1), (60, 1), (63, 2), (64, 2), (65, 2), (66, 2), (71, 2), (72, 1), (73, 2), (74, 1), (172, 2), (216, 1), (233, 2)], [], [(0, 2), (3, 1), (7, 1), (12, 1), (15, 1), (18, 2), (19, 2), (20, 2), (57, 1), (60, 2), (63, 2), (65, 2), (67, 2), (68, 2), (71, 1), (73, 1), (74, 2), (233, 2), (470, 1)], [], [(0, 2), (1, 1), (6, 2), (7, 2), (8, 2), (12, 1), (13, 1), (19, 1), (57, 1), (60, 2), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2), (233, 2)], [(0, 2), (1, 1), (6, 2), (7, 2), (8, 2), (12, 1), (13, 1), (19, 1), (60, 2), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2), (114, 1), (233, 2)], [(1, 1), (7, 2), (8, 2), (13, 1), (57, 1), (60, 2), (63, 2), (64, 1), (65, 1), (66, 2), (68, 2), (71, 1), (72, 1), (73, 1), (74, 2), (120, 2), (233, 2), (293, 1)], [], [], [(0, 2), (1, 1), (7, 2), (8, 2), (12, 1), (13, 1), (18, 2), (19, 1), (57, 1), (60, 2), (63, 2), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2)], [], [], [], [], [(3, 1), (6, 2), (8, 1), (13, 2), (64, 1), (68, 2), (120, 2), (130, 1)], [(8, 1), (13, 2), (68, 2), (73, 1)], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb31 : List (List (Nat × Nat)) := [[], [(3, 2), (4, 1), (8, 2), (13, 2), (14, 2), (18, 2), (21, 1), (57, 2), (73, 2), (233, 1)], [(2, 2), (5, 1), (6, 2), (13, 2), (14, 2), (18, 2), (21, 1), (57, 1), (73, 2), (114, 1), (233, 1)], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (13, 1), (14, 2), (18, 2), (21, 1), (233, 1)], [], [], [(2, 2), (3, 2), (4, 1), (5, 1), (13, 1), (14, 2), (18, 2), (21, 1), (57, 2), (73, 1), (233, 1)], [(2, 2), (3, 2), (4, 1), (5, 1), (13, 1), (14, 1), (18, 2), (21, 2), (57, 2), (73, 1), (233, 1)], [(2, 1), (5, 2), (13, 1), (14, 1), (18, 1), (21, 2), (24, 1), (57, 2), (73, 1), (233, 1)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (18, 2), (57, 2), (77, 1), (233, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (13, 1), (14, 2), (18, 2), (21, 1), (57, 2), (63, 1), (233, 1)], [(2, 2), (5, 1), (8, 2), (13, 2), (14, 2), (18, 2), (21, 1), (57, 1), (73, 2), (233, 2)], [], [], [], [], [(2, 2), (3, 2), (4, 1), (5, 1), (8, 1), (14, 2), (18, 2), (21, 1), (57, 2), (73, 1), (233, 1)], [(2, 1), (5, 2), (8, 1), (14, 2), (18, 2), (21, 1), (57, 2), (73, 1), (233, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (14, 2), (18, 2), (21, 1), (57, 2), (73, 1), (233, 1)], [], [(2, 2), (5, 2), (8, 1), (12, 2), (13, 2), (14, 1), (16, 1), (20, 2), (21, 1)], [(2, 2), (3, 1), (4, 2), (5, 2), (8, 1), (12, 2), (14, 2), (16, 2), (18, 2), (19, 1), (20, 1), (21, 2)], [], [], [], [(2, 1), (5, 1), (6, 1), (12, 1), (13, 2), (15, 1), (16, 1), (20, 1), (21, 2), (57, 1), (63, 2), (67, 2), (73, 1), (114, 2), (121, 1)], [], [], [], [(5, 2), (12, 1), (14, 1), (16, 1), (20, 2), (21, 1)], [(4, 1), (5, 1), (12, 2), (16, 1), (20, 2), (21, 1)], [(5, 2), (12, 1), (15, 1), (16, 1), (20, 1), (21, 2)], [(0, 2), (3, 1), (4, 2), (5, 2), (9, 1), (12, 2), (13, 1), (14, 1), (16, 2), (18, 2), (19, 1), (20, 1), (21, 2)], [], [], [], [], [], [(2, 2), (3, 1), (4, 2), (8, 2), (12, 2), (16, 2), (18, 1), (20, 1), (21, 1), (57, 1), (73, 2), (233, 2)], [(2, 2), (3, 1), (4, 2), (8, 2), (12, 1), (14, 1), (16, 2), (18, 1), (20, 1), (21, 1), (57, 1), (73, 2), (233, 2)], [], [], [], [], [], [], [(2, 2), (3, 2), (4, 1), (8, 2), (12, 1), (16, 2), (18, 1), (20, 1), (21, 1), (174, 1), (233, 2)], [(2, 2), (3, 2), (4, 1), (8, 2), (12, 1), (16, 2), (18, 1), (20, 1), (21, 1), (233, 2), (236, 1)], [(2, 2), (3, 1), (4, 1), (12, 1), (13, 2), (14, 1), (16, 2), (18, 1), (20, 1), (21, 1), (57, 1), (63, 2), (181, 1), (233, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (5, 2), (12, 1), (16, 1), (19, 2), (20, 2), (21, 2), (57, 2), (73, 1), (233, 1)], [], [], [], [], [], [(2, 1), (3, 1), (4, 2), (12, 2), (13, 2), (14, 1), (16, 2), (18, 1), (20, 2), (57, 1), (73, 2), (233, 2)], [(2, 1), (3, 1), (4, 2), (12, 1), (13, 2), (14, 2), (16, 1), (17, 1), (18, 1), (20, 2), (57, 1), (73, 2), (233, 2)], [(2, 1), (3, 1), (4, 2), (12, 2), (13, 2), (14, 1), (16, 2), (18, 1), (20, 1), (22, 1), (57, 1), (73, 2), (233, 2)], [(0, 1), (2, 2), (5, 2), (9, 2), (12, 1), (14, 1), (16, 1), (19, 2), (20, 2), (21, 2), (57, 2), (66, 1), (233, 1)], [(2, 1), (3, 2), (4, 1), (12, 2), (13, 1), (14, 2), (15, 2), (16, 2), (18, 2), (20, 2), (21, 2), (57, 2), (65, 1), (233, 1)], [(2, 2), (3, 1), (4, 2), (5, 2), (12, 2), (13, 1), (14, 2), (15, 2), (16, 2), (18, 2), (20, 2), (21, 2), (57, 2), (67, 1), (233, 1)], [], [], [], [], [], [], [(2, 1), (5, 1), (6, 2), (8, 1), (12, 2), (13, 1), (14, 1), (16, 2), (17, 2), (18, 2), (20, 1), (51, 1), (57, 2), (73, 1), (233, 1)], [], [], [(0, 1), (5, 1), (8, 1), (9, 2), (12, 1), (16, 1), (18, 2), (19, 2), (20, 2), (57, 1), (73, 1), (99, 1), (233, 2)], [(3, 1), (4, 2), (5, 1), (8, 1), (12, 2), (13, 1), (16, 2), (18, 1), (20, 1), (21, 1), (57, 2), (73, 1), (114, 2), (157, 1), (233, 2)], [], [], [], [(2, 2), (3, 2), (4, 1), (5, 2), (8, 2), (15, 1), (17, 2), (18, 1), (20, 2), (57, 1), (67, 2), (233, 2), (470, 1)], [(2, 1), (3, 1), (4, 2), (5, 2), (14, 1), (18, 1), (21, 2), (57, 1), (73, 2), (233, 2)], [], [], [(2, 1), (5, 2), (233, 2), (293, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (172, 1), (233, 2)], [], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (57, 1), (73, 2), (114, 2), (130, 1)], [], [], [], [], [], [(0, 1), (3, 2), (4, 1), (5, 2), (9, 2), (11, 1), (13, 2), (14, 2), (16, 2), (18, 1), (19, 2), (20, 1), (21, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2)], [], [], [], [], [], []] + +def comb32 : List (List (Nat × Nat)) := [[], [(8, 1), (18, 2), (57, 2), (66, 2), (233, 1)], [], [(11, 1), (13, 1), (16, 2), (18, 2), (57, 1), (66, 2), (172, 1), (233, 1)], [], [(8, 2), (11, 1), (13, 1), (16, 2), (233, 1)], [], [(8, 2), (11, 1), (13, 1), (16, 2), (57, 2), (66, 1), (233, 1)], [(8, 1), (11, 1), (13, 2), (16, 2), (57, 2), (66, 1), (233, 1)], [], [(11, 2), (13, 2), (16, 1), (24, 1), (57, 2), (66, 1), (233, 1)], [(8, 2), (11, 1), (13, 1), (16, 2), (57, 2), (75, 1), (233, 1)], [(1, 2), (7, 1), (9, 1), (11, 1), (12, 2), (13, 2), (15, 1), (16, 1), (18, 1), (57, 2), (77, 1), (233, 1)], [(11, 2), (13, 2), (16, 1), (18, 1), (57, 2), (63, 1), (233, 1)], [], [], [(6, 1), (8, 2), (11, 1), (13, 1), (16, 2), (18, 2), (57, 1), (66, 2), (233, 2)], [], [], [], [(11, 2), (13, 2), (16, 1), (18, 1), (57, 2), (66, 1), (233, 1)], [], [], [(1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (13, 2), (15, 2), (16, 2), (18, 1)], [], [], [(1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 1), (13, 2), (15, 2), (16, 2), (18, 1)], [], [(1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (13, 2), (15, 1), (63, 2), (66, 1), (121, 1)], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (9, 2), (11, 1), (12, 1), (13, 2), (15, 1), (57, 2), (58, 1), (66, 1), (72, 2)], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (13, 2), (15, 1)], [], [(1, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 1), (11, 2), (13, 1), (15, 2)], [], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (15, 1)], [], [(1, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 2), (13, 1), (15, 2), (21, 1)], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (11, 1), (13, 2), (15, 2), (16, 2), (18, 2), (57, 1), (66, 2), (233, 2)], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (11, 2), (15, 1), (16, 2), (18, 2), (57, 1), (66, 2), (233, 2)], [], [(1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (18, 1), (57, 2), (72, 1), (233, 1)], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (11, 1), (15, 1), (16, 2), (18, 2), (117, 1), (233, 2)], [], [(1, 2), (3, 1), (4, 1), (6, 2), (7, 1), (8, 2), (11, 2), (15, 1), (16, 2), (18, 2), (57, 1), (63, 2), (120, 1), (233, 2)], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 2), (15, 1), (16, 2), (18, 2), (233, 2), (236, 1)], [], [], [], [(1, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (11, 1), (15, 1), (16, 2), (57, 2), (66, 1), (233, 1)], [], [], [(1, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (10, 1), (11, 2), (15, 2), (16, 1), (57, 1), (66, 2), (233, 2)], [], [(1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (9, 1), (11, 2), (12, 2), (13, 1), (15, 2), (17, 1), (57, 1), (66, 2), (233, 2)], [], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (11, 1), (15, 1), (16, 2), (57, 2), (65, 1), (233, 1)], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (11, 1), (13, 2), (15, 1), (16, 2), (57, 2), (73, 1), (233, 1)], [], [(1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 1), (12, 2), (13, 2), (15, 2), (16, 2), (58, 2), (63, 2), (72, 1), (80, 1), (233, 1)], [], [(1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 2), (15, 1), (16, 1), (57, 1), (63, 2), (127, 1), (233, 2)], [], [(1, 1), (3, 2), (4, 1), (7, 2), (8, 2), (9, 2), (11, 2), (12, 1), (15, 1), (16, 2), (17, 2), (18, 1), (51, 1), (57, 2), (66, 1), (233, 1)], [], [], [(1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 1), (11, 2), (12, 2), (13, 2), (15, 2), (18, 1), (57, 1), (66, 1), (99, 1), (233, 2)], [], [], [(1, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (13, 1), (15, 2), (18, 1), (57, 2), (66, 1), (172, 2), (216, 1), (233, 2)], [], [(3, 1), (4, 2), (6, 2), (9, 2), (11, 2), (12, 1), (13, 1), (16, 2), (17, 2), (57, 1), (75, 2), (233, 2), (470, 1)], [(8, 2), (11, 2), (13, 2), (16, 1), (57, 1), (66, 2), (233, 2)], [], [(6, 2), (8, 2), (11, 2), (13, 2), (16, 1), (114, 1), (233, 2)], [(3, 1), (6, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (16, 1), (63, 1), (72, 2), (120, 2), (233, 2), (293, 1)], [], [], [], [], [], [], [], [(3, 1), (8, 1), (11, 2), (13, 2), (63, 1), (66, 2), (120, 2), (130, 1)], [], [], [], [], [(8, 1), (11, 2), (13, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb33 : List (List (Nat × Nat)) := [[], [(0, 1), (2, 2), (6, 1), (24, 2), (57, 2), (63, 2), (172, 1)], [], [], [(0, 2), (2, 1), (6, 1), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (24, 2), (57, 1), (63, 2), (172, 1), (233, 1)], [(7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (172, 1)], [], [(0, 1), (2, 2), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (57, 2), (63, 1), (172, 1)], [(7, 2), (8, 2), (9, 2), (10, 1), (11, 1), (12, 1), (13, 1), (17, 2), (57, 2), (63, 1), (172, 1)], [(0, 1), (2, 2), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 1), (57, 2), (63, 1), (172, 1)], [], [(0, 1), (2, 2), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 2), (24, 1), (57, 2), (75, 1), (172, 1)], [(0, 1), (2, 2), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 2), (24, 1), (57, 2), (77, 1), (172, 1)], [], [], [], [], [(0, 2), (2, 1), (7, 2), (8, 1), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (24, 2), (57, 1), (63, 2), (172, 2)], [(0, 2), (2, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [(0, 1), (2, 2), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (8, 1), (10, 2), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (24, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (24, 1)], [(0, 2), (1, 1), (2, 1), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (63, 1), (67, 2), (121, 1)], [], [], [(0, 1), (1, 2), (2, 2), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1)], [(0, 1), (1, 1), (6, 1), (7, 1), (9, 1), (10, 1), (11, 2), (13, 2), (14, 2), (15, 2), (16, 1), (17, 2)], [], [], [(0, 1), (1, 2), (2, 2), (7, 2), (8, 1), (10, 2), (11, 1), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1)], [], [(0, 2), (1, 2), (2, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 2), (13, 1), (14, 2), (15, 1), (16, 2), (17, 1)], [(0, 1), (1, 2), (2, 2), (6, 1), (8, 1), (10, 1), (12, 1), (13, 2), (14, 1), (15, 1), (16, 2), (17, 2), (18, 2), (21, 1)], [], [(1, 2), (6, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (24, 2), (57, 1), (63, 2), (172, 2)], [(0, 1), (1, 2), (2, 2), (7, 1), (9, 1), (11, 2), (12, 1), (13, 1), (14, 1), (15, 1), (16, 2), (24, 2), (57, 1), (63, 2), (172, 2)], [], [], [], [(1, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 1), (13, 1), (14, 2), (15, 2), (16, 1), (24, 1), (57, 2), (64, 1), (172, 1)], [(0, 1), (1, 2), (2, 2), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (24, 2), (117, 1), (172, 2)], [(0, 1), (1, 2), (2, 2), (7, 1), (8, 2), (9, 1), (11, 2), (13, 2), (14, 1), (15, 1), (16, 2), (24, 2), (115, 1), (172, 2)], [], [(0, 1), (1, 2), (2, 2), (7, 1), (8, 2), (9, 1), (11, 2), (13, 2), (14, 1), (15, 1), (16, 2), (24, 2), (172, 2), (174, 1)], [], [], [], [], [], [(0, 2), (1, 2), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (57, 2), (63, 1), (172, 1)], [(0, 1), (1, 1), (2, 2), (7, 2), (8, 2), (9, 1), (11, 2), (13, 1), (14, 2), (15, 2), (16, 1), (57, 1), (63, 2), (172, 2)], [], [(0, 1), (1, 1), (2, 2), (7, 1), (8, 2), (9, 1), (10, 1), (11, 2), (12, 1), (13, 1), (14, 1), (15, 2), (16, 2), (17, 2), (57, 1), (63, 2), (172, 2)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (57, 2), (67, 1), (172, 1)], [], [(1, 2), (6, 2), (7, 2), (9, 2), (10, 2), (11, 1), (13, 1), (14, 1), (15, 1), (16, 2), (57, 2), (71, 1), (172, 1)], [(0, 2), (1, 2), (2, 1), (8, 2), (10, 1), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (18, 2), (57, 2), (80, 1), (172, 1)], [(0, 1), (1, 1), (2, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 2), (13, 2), (14, 1), (15, 2), (16, 1), (115, 1), (130, 1), (131, 2), (172, 2)], [], [], [(1, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 2), (12, 1), (13, 2), (14, 1), (15, 1), (16, 2), (17, 2), (24, 1), (51, 1), (57, 2), (63, 1), (172, 1)], [], [], [(0, 1), (1, 1), (2, 2), (6, 2), (7, 1), (8, 2), (10, 1), (11, 2), (12, 1), (13, 1), (14, 2), (15, 2), (16, 1), (17, 2), (24, 1), (57, 1), (63, 1), (99, 1), (172, 2)], [], [], [], [(1, 1), (6, 2), (8, 2), (10, 1), (12, 1), (13, 1), (14, 2), (15, 2), (16, 1), (17, 2), (24, 1), (57, 2), (63, 1), (172, 2), (233, 2), (274, 1)], [(0, 2), (2, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (13, 2), (14, 1), (17, 1), (18, 1), (24, 2), (57, 2), (67, 2), (75, 2), (115, 2), (130, 2), (131, 1), (172, 2), (470, 1)], [(0, 2), (2, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (57, 1), (63, 2), (172, 2)], [], [(7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (114, 1), (172, 2)], [(2, 1), (5, 2), (6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (17, 1), (172, 2), (293, 1)], [], [], [], [], [], [], [], [(7, 1), (8, 1), (9, 1), (10, 2), (11, 2), (13, 2), (57, 1), (63, 2), (115, 2), (131, 1)], [], [], [], [], [(7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1)], [], [], [], [], [], [], [], []] + +def comb34 : List (List (Nat × Nat)) := [[], [], [(6, 1), (9, 1), (11, 2), (12, 1), (13, 2), (17, 2), (57, 1), (63, 2), (64, 1), (68, 2), (114, 1), (233, 1)], [], [], [(6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (17, 2), (233, 1)], [(4, 1), (6, 2), (12, 1), (14, 1), (16, 2), (17, 2), (18, 1), (21, 2), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [], [], [(6, 2), (9, 2), (11, 1), (12, 1), (14, 1), (16, 2), (17, 2), (18, 1), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [(6, 2), (9, 2), (11, 1), (12, 1), (14, 1), (16, 2), (17, 2), (24, 1), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [], [], [(6, 2), (9, 2), (11, 1), (12, 1), (13, 1), (17, 2), (57, 2), (63, 1), (233, 1)], [], [], [(8, 2), (12, 1), (13, 1), (17, 2), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [(6, 2), (12, 1), (13, 1), (17, 2), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [], [], [], [(6, 2), (9, 2), (11, 1), (12, 1), (13, 1), (17, 2), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (7, 1), (12, 2), (13, 1), (17, 1), (18, 2), (19, 2), (21, 2)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 2), (7, 1), (12, 2), (13, 1), (17, 1), (18, 2), (19, 2), (21, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (12, 2), (14, 2), (16, 1), (17, 1), (18, 1), (19, 1), (21, 1), (57, 2), (60, 1), (63, 1), (64, 2), (68, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (14, 1), (16, 2), (17, 1), (19, 1), (21, 2)], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 1), (7, 1), (8, 2), (9, 1), (12, 1), (14, 2), (16, 1), (17, 2), (19, 2), (21, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (6, 2), (7, 1), (8, 1), (14, 1), (16, 2), (17, 1), (19, 2), (21, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (7, 1), (12, 2), (14, 2), (16, 2), (17, 1), (19, 2), (21, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (9, 1), (11, 2), (13, 2), (14, 2), (16, 1), (19, 2), (21, 1), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [], [(0, 2), (1, 1), (2, 2), (3, 1), (6, 1), (7, 2), (13, 2), (14, 2), (16, 1), (19, 1), (21, 2), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (12, 1), (13, 2), (14, 1), (16, 2), (17, 2), (19, 1), (21, 2), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 2), (13, 2), (18, 1), (19, 1), (21, 1), (58, 1), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (11, 2), (12, 1), (13, 2), (14, 1), (16, 2), (17, 2), (19, 1), (21, 2), (57, 1), (63, 2), (64, 1), (233, 2)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 1), (7, 1), (8, 2), (12, 2), (13, 1), (14, 1), (16, 2), (17, 1), (18, 2), (19, 2), (21, 2), (60, 2), (114, 2), (117, 1), (233, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (7, 2), (8, 1), (12, 1), (13, 2), (14, 1), (16, 2), (17, 2), (19, 1), (21, 2), (57, 1), (63, 2), (181, 1), (233, 2)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (14, 1), (16, 2), (18, 2), (19, 2), (21, 2), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 1), (9, 1), (11, 2), (12, 1), (17, 2), (18, 2), (19, 2), (21, 2), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 1), (7, 1), (12, 1), (17, 2), (18, 2), (19, 1), (21, 2), (22, 1), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 2), (7, 2), (9, 2), (11, 1), (12, 2), (17, 1), (18, 1), (19, 1), (21, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 1), (7, 1), (9, 1), (11, 2), (12, 1), (17, 2), (18, 2), (19, 1), (21, 2), (57, 1), (63, 2), (80, 1), (233, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (12, 2), (14, 1), (16, 1), (17, 1), (19, 1), (21, 2), (114, 2), (130, 1), (233, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 1), (7, 1), (12, 2), (14, 1), (16, 2), (17, 1), (18, 2), (19, 2), (21, 2), (57, 1), (60, 2), (63, 2), (114, 2), (127, 1), (233, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (14, 1), (16, 2), (17, 2), (18, 1), (19, 1), (21, 1), (51, 1), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (9, 2), (11, 1), (13, 1), (14, 1), (16, 1), (19, 1), (21, 2), (57, 2), (63, 1), (64, 2), (68, 1), (114, 2), (157, 1), (233, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 2), (7, 1), (9, 2), (11, 1), (13, 1), (14, 1), (16, 2), (18, 2), (19, 2), (21, 2), (57, 2), (58, 2), (63, 1), (64, 2), (68, 1), (233, 2), (392, 1)], [], [], [(6, 2), (8, 1), (13, 2), (14, 1), (18, 1), (21, 2), (114, 1), (130, 2), (233, 2), (470, 1)], [(8, 1), (14, 2), (16, 1), (57, 1), (63, 2), (64, 1), (68, 2), (233, 2)], [(9, 1), (11, 2), (14, 2), (16, 1), (57, 1), (233, 2)], [], [], [(172, 1), (233, 2)], [], [], [(6, 1), (12, 2), (13, 2), (14, 1), (16, 2), (17, 1)], [], [], [], [], [(6, 1), (8, 2), (9, 1), (12, 2), (16, 2), (17, 1), (68, 2), (73, 1)], [], [], [], [(6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (17, 1)], [], [], [], [], [(6, 1), (8, 2), (12, 2), (14, 1), (16, 2), (17, 1)], [], [], []] + +def comb35 : List (List (Nat × Nat)) := [[], [], [(6, 2), (8, 2), (24, 2), (57, 1), (63, 2), (114, 1), (172, 1)], [], [(2, 2), (5, 1), (6, 2), (8, 2), (12, 1), (17, 2), (24, 2), (57, 1), (63, 2), (172, 1), (233, 1)], [(2, 2), (5, 1), (6, 2), (8, 1), (12, 1), (17, 2), (172, 1)], [(5, 1), (8, 2), (13, 1), (17, 2), (57, 2), (63, 1), (172, 1)], [], [(2, 2), (5, 1), (6, 2), (12, 1), (13, 1), (17, 2), (57, 2), (63, 1), (172, 1)], [(2, 1), (5, 2), (6, 1), (8, 1), (12, 2), (17, 1), (18, 1), (57, 2), (63, 1), (172, 1)], [], [], [(2, 2), (5, 1), (6, 2), (8, 1), (12, 1), (17, 2), (18, 2), (24, 1), (60, 2), (77, 1), (172, 1)], [], [], [(0, 1), (2, 1), (5, 1), (6, 2), (12, 1), (14, 1), (16, 2), (17, 2), (19, 2), (20, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [(2, 1), (5, 2), (6, 2), (12, 2), (17, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [], [], [(2, 1), (5, 2), (6, 1), (8, 1), (12, 2), (17, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 2), (12, 1), (13, 1), (17, 1), (18, 1), (19, 2), (24, 1)], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 2), (12, 1), (13, 1), (17, 1), (18, 1), (19, 2), (24, 1)], [], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (7, 2), (12, 1), (13, 1), (17, 1), (18, 2), (19, 1)], [], [(0, 2), (1, 1), (3, 2), (4, 2), (5, 2), (7, 2), (12, 1), (13, 1), (17, 1), (18, 2), (19, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (12, 2), (13, 1), (14, 1), (15, 1), (16, 2), (17, 2), (18, 2), (19, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (13, 1), (14, 1), (17, 1), (18, 2), (19, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (12, 2), (13, 2), (17, 2), (18, 1), (19, 1), (21, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (13, 2), (17, 1), (18, 1), (19, 2), (24, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (12, 2), (13, 1), (18, 2), (19, 1), (24, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (1, 1), (3, 2), (4, 1), (7, 2), (12, 1), (13, 2), (18, 2), (19, 1), (24, 2), (60, 1), (172, 2)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (12, 1), (13, 2), (18, 2), (19, 1), (24, 2), (58, 1), (172, 2)], [], [], [], [(0, 1), (1, 2), (3, 1), (4, 1), (6, 1), (7, 1), (8, 2), (12, 2), (13, 1), (18, 1), (19, 2), (24, 1), (114, 2), (120, 1), (172, 1)], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (12, 2), (13, 2), (14, 2), (16, 1), (17, 2), (18, 2), (19, 2), (20, 2), (24, 2), (172, 2), (174, 1)], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (7, 1), (8, 1), (12, 2), (13, 1), (18, 1), (19, 2), (57, 1), (63, 2), (172, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (7, 1), (8, 1), (12, 2), (13, 1), (18, 1), (19, 2), (57, 1), (63, 2), (172, 2)], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 1), (8, 1), (10, 1), (12, 1), (13, 2), (18, 2), (19, 1), (57, 2), (63, 1), (172, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 1), (8, 2), (13, 1), (14, 2), (16, 1), (17, 2), (18, 1), (19, 2), (57, 1), (63, 2), (172, 2)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (5, 2), (7, 1), (12, 2), (13, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (60, 2), (67, 1), (172, 1)], [(1, 2), (3, 2), (4, 1), (5, 1), (7, 1), (12, 2), (13, 2), (14, 2), (18, 1), (19, 2), (58, 1), (73, 1), (74, 2), (172, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (12, 1), (13, 1), (18, 2), (19, 1), (114, 2), (127, 1), (172, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (13, 2), (17, 1), (18, 1), (19, 1), (114, 2), (137, 1), (172, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (12, 2), (13, 2), (17, 2), (18, 2), (19, 1), (24, 1), (51, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (7, 1), (8, 2), (13, 2), (14, 2), (17, 2), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (114, 2), (157, 1), (172, 2)], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 1), (7, 1), (8, 2), (12, 2), (13, 2), (17, 2), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (172, 2), (233, 2), (274, 1)], [(1, 2), (2, 1), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (12, 1), (15, 1), (17, 1), (18, 1), (20, 2), (24, 2), (60, 1), (67, 2), (172, 2), (470, 1)], [(2, 1), (5, 2), (6, 1), (12, 2), (17, 1), (57, 1), (63, 2), (172, 2)], [(2, 1), (5, 2), (6, 1), (8, 2), (12, 2), (17, 1), (57, 1), (172, 2)], [], [(0, 1), (3, 1), (5, 2), (12, 2), (17, 1), (58, 2), (114, 1), (120, 2), (172, 2), (293, 1)], [], [], [], [(2, 1), (5, 2), (6, 1), (12, 2), (17, 1), (24, 2)], [], [], [], [], [(0, 1), (5, 2), (8, 1), (13, 2), (57, 1), (58, 2), (63, 2), (74, 1)], [], [], [], [(2, 1), (5, 2), (6, 1), (8, 2), (12, 2), (17, 1)], [], [], [], [], [], [], [], []] + +def comb36 : List (List (Nat × Nat)) := [[], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (14, 1), (16, 2), (18, 2), (19, 2), (20, 1), (57, 1), (63, 2), (64, 1), (66, 2), (172, 1), (233, 1)], [], [(3, 2), (4, 1), (6, 1), (8, 2), (14, 1), (16, 2), (19, 2), (20, 1), (233, 1)], [(0, 2), (2, 1), (4, 1), (9, 2), (14, 1), (16, 2), (19, 2), (20, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (8, 2), (14, 1), (16, 2), (19, 2), (20, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (8, 1), (14, 2), (16, 1), (19, 1), (20, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(3, 2), (4, 1), (6, 1), (8, 2), (14, 1), (16, 2), (19, 2), (20, 1), (57, 2), (75, 1), (233, 1)], [], [(3, 1), (4, 2), (6, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 1), (20, 2), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (8, 2), (14, 1), (16, 2), (18, 1), (19, 2), (20, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (8, 2), (14, 2), (16, 1), (18, 1), (19, 1), (20, 2), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (14, 1), (16, 2), (18, 2), (19, 2), (20, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [], [], [], [], [(0, 1), (2, 1), (3, 1), (7, 2), (8, 2), (9, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 2)], [(0, 1), (2, 1), (4, 1), (7, 2), (8, 2), (9, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 2)], [], [], [(2, 1), (3, 2), (7, 1), (9, 1), (14, 2), (16, 1), (20, 2), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1)], [(0, 2), (2, 2), (3, 1), (4, 1), (7, 1), (9, 1), (14, 2), (16, 1), (20, 2), (57, 2), (58, 1), (63, 1), (64, 2), (66, 1)], [], [(0, 1), (2, 1), (4, 1), (6, 1), (7, 1), (8, 2), (9, 2), (14, 2), (16, 1), (20, 2)], [], [(0, 2), (1, 2), (3, 2), (7, 2), (9, 1), (14, 2), (15, 1), (16, 1), (20, 1)], [], [], [(0, 2), (3, 2), (4, 2), (7, 2), (9, 1), (14, 2), (16, 2), (20, 1)], [(0, 2), (3, 2), (4, 2), (7, 2), (9, 1), (14, 1), (16, 2), (20, 1), (21, 1)], [(0, 1), (3, 1), (4, 1), (6, 2), (7, 2), (8, 2), (9, 1), (18, 2), (19, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(1, 1), (2, 1), (4, 1), (7, 1), (8, 1), (9, 2), (18, 2), (19, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [(2, 1), (4, 2), (7, 1), (8, 1), (9, 2), (18, 2), (19, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [], [(0, 1), (4, 2), (6, 2), (7, 1), (8, 2), (9, 1), (18, 2), (19, 2), (57, 1), (63, 2), (64, 1), (233, 2)], [], [], [(2, 1), (3, 2), (4, 2), (7, 1), (8, 1), (9, 2), (18, 2), (19, 2), (57, 1), (63, 2), (120, 1), (233, 2)], [(0, 1), (2, 1), (4, 1), (7, 2), (8, 2), (9, 2), (14, 2), (16, 1), (18, 1), (19, 2), (20, 2), (60, 2), (172, 2), (174, 1), (233, 1)], [], [], [(0, 1), (2, 1), (4, 1), (6, 2), (7, 2), (8, 1), (9, 2), (19, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [], [(2, 1), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (9, 2), (19, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [(2, 2), (3, 2), (4, 2), (7, 1), (9, 2), (10, 1), (19, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(2, 1), (3, 1), (4, 1), (7, 1), (9, 1), (14, 2), (16, 1), (19, 2), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [], [], [(1, 1), (2, 1), (3, 2), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (15, 2), (19, 1), (20, 1), (57, 1), (63, 2), (64, 1), (66, 2), (67, 1), (233, 2)], [(0, 2), (2, 2), (3, 1), (4, 1), (6, 1), (7, 1), (8, 2), (9, 2), (14, 2), (19, 2), (57, 2), (63, 1), (64, 2), (73, 1), (233, 1)], [], [], [(2, 1), (3, 2), (4, 1), (7, 1), (9, 1), (14, 2), (19, 2), (57, 2), (63, 1), (120, 2), (130, 1), (233, 1)], [], [], [(1, 2), (2, 2), (4, 2), (7, 2), (8, 2), (9, 1), (18, 1), (19, 1), (51, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [], [], [(0, 1), (2, 1), (4, 2), (7, 2), (8, 1), (9, 1), (14, 1), (16, 2), (18, 1), (20, 1), (57, 1), (63, 2), (64, 2), (66, 1), (120, 2), (233, 2), (392, 1)], [(0, 2), (2, 2), (3, 2), (6, 1), (7, 1), (8, 1), (9, 2), (16, 2), (18, 1), (19, 1), (20, 1), (57, 2), (63, 1), (64, 2), (66, 1), (172, 2), (216, 1), (233, 2)], [], [(1, 2), (2, 1), (4, 2), (7, 1), (15, 1), (16, 1), (19, 1), (20, 1), (57, 1), (64, 2), (66, 1), (67, 2), (75, 2), (120, 1), (130, 2), (233, 2), (470, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (8, 1), (14, 2), (16, 1), (19, 1), (20, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(3, 1), (4, 2), (6, 2), (8, 1), (14, 2), (16, 1), (19, 1), (20, 2), (57, 1), (233, 2)], [(3, 1), (4, 2), (6, 2), (8, 1), (14, 2), (16, 1), (19, 1), (20, 2), (114, 1), (233, 2)], [], [], [], [], [], [(3, 1), (4, 2), (13, 1), (14, 2), (16, 1), (18, 2), (19, 1), (20, 2)], [], [], [], [], [(3, 1), (4, 2), (66, 2), (68, 1)], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (11, 1)], [], [], [], [], [], [], []] + +def comb37 : List (List (Nat × Nat)) := [[], [], [], [], [(0, 2), (5, 1), (8, 2), (9, 1), (10, 2), (18, 2), (20, 1), (24, 2), (57, 1), (63, 2), (66, 2), (172, 1), (233, 1)], [(2, 2), (5, 1), (8, 1), (10, 2), (18, 2), (20, 1), (172, 1)], [(5, 1), (6, 1), (9, 1), (10, 2), (12, 2), (18, 2), (20, 1), (58, 2), (66, 2), (72, 1), (172, 1)], [(0, 1), (2, 1), (5, 1), (8, 1), (9, 2), (10, 2), (18, 2), (20, 1), (57, 2), (63, 1), (66, 1), (172, 1)], [], [(0, 1), (5, 2), (8, 1), (9, 2), (10, 1), (18, 2), (20, 2), (57, 2), (63, 1), (66, 1), (172, 1)], [], [(0, 1), (2, 1), (5, 1), (8, 1), (9, 2), (10, 2), (18, 1), (20, 1), (24, 1), (57, 2), (66, 1), (75, 1), (172, 1)], [], [], [(0, 1), (2, 1), (5, 1), (9, 2), (10, 2), (18, 2), (20, 1), (24, 1), (57, 2), (63, 1), (66, 1), (172, 1)], [], [(0, 1), (5, 2), (6, 1), (9, 2), (10, 1), (18, 1), (20, 2), (24, 1), (57, 2), (63, 1), (66, 1), (172, 1)], [], [(0, 2), (2, 2), (5, 2), (8, 1), (9, 1), (10, 1), (18, 1), (20, 2), (24, 1), (57, 2), (63, 1), (66, 2), (172, 1)], [], [(0, 2), (5, 1), (8, 2), (9, 1), (10, 2), (18, 2), (20, 1), (24, 2), (57, 1), (63, 2), (66, 2), (172, 2)], [], [], [], [], [(1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (9, 1), (10, 1), (12, 2), (18, 1), (20, 2), (24, 1), (25, 1), (57, 1), (58, 2), (63, 2), (66, 1), (72, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (9, 1), (10, 1), (12, 2), (18, 1), (20, 2), (24, 1), (25, 1), (57, 1), (58, 2), (63, 2), (66, 1), (72, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (9, 1), (10, 1), (12, 1), (18, 1), (20, 2), (25, 2), (57, 1), (58, 1), (60, 1), (63, 2), (72, 2)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 1), (10, 1), (12, 2), (18, 1), (20, 2), (25, 2), (57, 1), (58, 2), (63, 2), (66, 1), (72, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (10, 2), (12, 1), (15, 1), (18, 2), (20, 1), (25, 1), (57, 2), (58, 1), (63, 1), (66, 2), (72, 2)], [(1, 1), (3, 1), (4, 2), (5, 2), (6, 2), (9, 2), (10, 1), (12, 1), (18, 1), (20, 2), (25, 2), (57, 2), (58, 1), (63, 1), (72, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (10, 2), (12, 2), (18, 2), (20, 1), (25, 1), (57, 2), (58, 1), (63, 1), (66, 2), (72, 2)], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (9, 2), (10, 2), (12, 1), (18, 1), (20, 1), (21, 1), (25, 2), (57, 2), (58, 1), (63, 1), (66, 2), (72, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (8, 2), (10, 1), (12, 1), (24, 2), (25, 2), (58, 1), (66, 1), (72, 2), (172, 2)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (9, 2), (12, 2), (24, 2), (25, 2), (57, 2), (58, 2), (63, 1), (66, 2), (72, 1), (172, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (9, 1), (12, 2), (24, 2), (25, 2), (57, 2), (58, 2), (63, 1), (72, 1), (172, 2)], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 2), (8, 2), (9, 2), (12, 1), (24, 2), (25, 2), (57, 2), (58, 2), (63, 1), (66, 2), (72, 2), (172, 2)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (9, 1), (12, 1), (24, 2), (25, 2), (57, 2), (58, 1), (63, 1), (72, 2), (115, 1), (172, 2)], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (9, 1), (10, 1), (12, 2), (18, 1), (20, 2), (24, 1), (25, 1), (57, 1), (58, 2), (60, 2), (63, 2), (66, 1), (72, 1), (172, 1), (233, 2), (236, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (8, 2), (12, 2), (25, 1), (57, 2), (58, 2), (63, 1), (66, 2), (72, 1), (172, 2)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 1), (8, 2), (9, 2), (12, 2), (25, 1), (57, 2), (58, 2), (63, 1), (72, 1), (172, 2)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (7, 1), (9, 2), (10, 2), (12, 2), (25, 1), (57, 2), (58, 2), (63, 1), (72, 1), (172, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (9, 1), (17, 1), (25, 2), (57, 1), (58, 1), (63, 2), (72, 2), (172, 1)], [], [], [(1, 2), (3, 2), (4, 1), (5, 1), (6, 1), (9, 1), (10, 2), (12, 2), (15, 2), (18, 2), (20, 1), (25, 2), (57, 2), (58, 2), (63, 1), (65, 1), (72, 1), (172, 2)], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (8, 1), (9, 1), (12, 2), (18, 1), (20, 2), (25, 1), (57, 1), (58, 2), (60, 2), (63, 2), (66, 1), (71, 1), (72, 1), (172, 1)], [], [], [(1, 1), (2, 1), (5, 1), (6, 2), (9, 2), (10, 1), (12, 1), (18, 1), (20, 2), (25, 1), (57, 2), (58, 1), (60, 2), (63, 1), (72, 2), (127, 1), (172, 1)], [], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (9, 1), (12, 2), (17, 2), (24, 1), (25, 1), (51, 1), (57, 1), (58, 1), (63, 2), (66, 1), (72, 2), (172, 1)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (10, 2), (12, 2), (18, 2), (20, 1), (24, 1), (25, 1), (58, 1), (66, 2), (72, 1), (172, 2), (392, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 2), (10, 2), (12, 1), (18, 2), (20, 1), (24, 1), (25, 2), (58, 2), (66, 2), (72, 1), (172, 2), (233, 2), (274, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (9, 1), (10, 1), (12, 1), (17, 2), (18, 2), (20, 2), (24, 2), (57, 1), (66, 2), (75, 2), (172, 2), (470, 1)], [(0, 2), (2, 2), (5, 2), (9, 1), (10, 1), (18, 1), (20, 2), (57, 1), (63, 2), (66, 2), (172, 2)], [(0, 2), (2, 2), (5, 2), (8, 2), (9, 1), (10, 1), (18, 1), (20, 2), (57, 1), (66, 2), (172, 2)], [(2, 1), (5, 2), (6, 2), (10, 1), (18, 1), (20, 2), (114, 1), (172, 2)], [], [], [], [], [], [(0, 2), (2, 2), (5, 2), (8, 2), (9, 1), (10, 1), (13, 1), (18, 1), (20, 2), (24, 2), (66, 2)], [], [], [], [], [(0, 2), (2, 2), (5, 2), (8, 2), (9, 1), (10, 1), (15, 1), (18, 1), (20, 2), (25, 2), (65, 2), (66, 2), (68, 1)], [], [], [], [(2, 1), (5, 2), (6, 1), (7, 2), (8, 2), (10, 1), (11, 1), (66, 2)], [], [], [], [], [], [], []] + +def comb38 : List (List (Nat × Nat)) := [[], [], [], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (13, 1), (14, 2), (19, 2), (24, 2), (44, 1), (57, 1), (63, 2), (172, 1), (293, 1)], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (13, 1), (14, 2), (19, 2), (24, 2), (44, 1), (57, 1), (63, 2), (233, 1), (293, 1)], [(2, 1), (5, 2), (6, 2), (10, 1), (13, 1), (14, 2), (19, 2), (44, 1), (293, 1)], [(1, 1), (2, 1), (5, 2), (6, 2), (8, 2), (10, 1), (13, 2), (14, 2), (15, 2), (19, 2), (44, 1), (57, 2), (63, 1), (293, 1)], [(3, 1), (4, 2), (6, 2), (7, 1), (13, 1), (14, 2), (19, 2), (44, 1), (57, 2), (63, 1), (293, 1)], [(2, 1), (5, 2), (6, 2), (8, 2), (10, 1), (13, 2), (14, 2), (19, 2), (44, 1), (57, 2), (63, 1), (293, 1)], [], [], [(3, 1), (4, 2), (6, 2), (7, 1), (13, 1), (14, 2), (18, 2), (19, 2), (24, 1), (44, 1), (57, 2), (75, 1), (293, 1)], [(1, 2), (2, 2), (5, 2), (6, 2), (7, 1), (8, 2), (10, 1), (12, 2), (13, 1), (14, 2), (15, 1), (19, 1), (24, 1), (44, 1), (60, 2), (77, 1), (293, 1)], [], [(3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (13, 1), (14, 2), (19, 2), (24, 1), (44, 1), (57, 2), (63, 1), (293, 1)], [(3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (13, 1), (14, 2), (19, 1), (20, 1), (24, 1), (44, 1), (57, 2), (63, 1), (293, 1)], [], [], [], [], [], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (13, 1), (14, 2), (19, 2), (24, 2), (44, 1), (57, 1), (63, 2), (293, 2)], [], [], [], [], [(1, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (10, 1), (14, 1), (15, 2), (19, 2), (24, 1), (44, 2)], [(1, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 1), (10, 2), (14, 1), (15, 2), (19, 2), (24, 1), (44, 2)], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 1), (10, 1), (13, 1), (14, 1), (15, 1), (44, 2), (57, 2), (58, 1), (63, 1)], [], [(1, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (10, 1), (14, 1), (15, 2), (44, 2)], [(1, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 1), (8, 2), (10, 2), (14, 1), (15, 2), (44, 2)], [], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 2), (13, 1), (14, 1), (15, 1), (44, 2)], [(1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (10, 1), (12, 1), (14, 1), (15, 1), (44, 2)], [(1, 2), (3, 1), (4, 2), (5, 1), (6, 1), (7, 1), (8, 2), (10, 2), (14, 2), (15, 1), (44, 2)], [], [(1, 2), (5, 1), (8, 2), (10, 2), (13, 2), (15, 1), (19, 2), (24, 2), (57, 1), (63, 2), (293, 2)], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (10, 1), (13, 1), (15, 2), (19, 2), (24, 2), (57, 1), (63, 2), (293, 2)], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (8, 2), (10, 1), (13, 2), (15, 1), (19, 2), (24, 2), (60, 1), (293, 2)], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (8, 2), (10, 1), (13, 2), (15, 1), (19, 2), (24, 2), (117, 1), (293, 2)], [], [], [], [], [(1, 1), (3, 2), (5, 2), (6, 1), (8, 1), (10, 1), (14, 1), (15, 2), (19, 2), (24, 1), (44, 2), (172, 2), (181, 1), (293, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (8, 2), (10, 1), (13, 1), (15, 2), (19, 1), (57, 1), (63, 2), (293, 2)], [(1, 1), (3, 1), (4, 2), (5, 2), (7, 1), (8, 2), (10, 1), (13, 1), (15, 2), (19, 1), (57, 1), (63, 2), (293, 2)], [], [], [], [], [], [], [(1, 2), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 1), (10, 1), (13, 1), (14, 1), (15, 1), (19, 2), (22, 1), (44, 2), (57, 2), (63, 1), (293, 1)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (10, 1), (13, 1), (15, 2), (19, 1), (60, 1), (66, 1), (67, 2), (293, 2)], [], [], [], [], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (10, 1), (14, 1), (15, 2), (19, 2), (44, 2), (58, 2), (80, 1), (293, 1)], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (10, 2), (13, 1), (14, 1), (15, 1), (19, 2), (44, 2), (58, 2), (137, 1), (293, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 1), (10, 2), (13, 2), (15, 1), (19, 1), (24, 1), (51, 1), (57, 2), (63, 1), (293, 1)], [], [], [], [], [], [(1, 1), (2, 1), (5, 1), (10, 2), (13, 2), (14, 2), (15, 2), (19, 1), (24, 1), (57, 2), (63, 1), (172, 2), (216, 1), (293, 2)], [(1, 1), (2, 2), (3, 2), (4, 1), (7, 2), (12, 2), (13, 2), (15, 2), (19, 1), (24, 1), (57, 2), (63, 1), (233, 2), (274, 1), (293, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (7, 2), (10, 1), (18, 1), (19, 1), (20, 2), (24, 2), (57, 1), (75, 2), (293, 2), (470, 1)], [(3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (13, 2), (14, 1), (19, 1), (44, 2), (57, 1), (63, 2), (293, 2)], [(3, 2), (4, 1), (6, 1), (7, 2), (13, 2), (14, 1), (19, 1), (44, 2), (57, 1), (293, 2)], [(2, 2), (5, 1), (8, 1), (10, 2), (13, 2), (14, 1), (19, 1), (44, 2), (114, 1), (293, 2)], [], [], [], [], [], [], [(18, 1), (24, 2)], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (57, 1), (60, 2), (63, 2), (67, 1)], [], [], [], [(6, 1), (8, 2)], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (7, 1), (10, 2)], [], [], []] + +def comb39 : List (List (Nat × Nat)) := [[], [], [(0, 1), (2, 2), (8, 2), (9, 2), (11, 1), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [(0, 1), (2, 2), (8, 2), (9, 2), (11, 1), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (172, 1)], [(0, 1), (2, 2), (6, 1), (8, 1), (9, 2), (11, 1), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (233, 1)], [(0, 2), (2, 1), (6, 2), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (57, 1), (63, 1)], [(0, 2), (1, 1), (2, 1), (8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (51, 2), (63, 2)], [], [], [], [], [], [], [], [], [], [], [], [(0, 1), (2, 2), (8, 2), (9, 2), (11, 1), (14, 1), (16, 2), (24, 1), (63, 1)], [(8, 2), (24, 1), (63, 1)], [(6, 1), (8, 1), (24, 1), (63, 1)], [(1, 1), (2, 2), (6, 1), (8, 1), (9, 2), (11, 1), (12, 1), (24, 1), (51, 2), (57, 2), (58, 1), (63, 2), (72, 2)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (8, 2), (12, 1), (14, 2), (15, 1), (16, 1), (24, 2), (34, 1), (51, 1), (58, 1), (60, 2), (63, 1), (64, 1), (66, 2), (67, 1), (72, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 1), (12, 2), (14, 2), (15, 2), (16, 1), (24, 2), (34, 1), (51, 2), (57, 1), (58, 2), (72, 1)], [], [], [], [], [(0, 2), (3, 1), (4, 2), (8, 1), (12, 1), (14, 2), (15, 1), (16, 1), (24, 2), (34, 2), (51, 1), (58, 1), (63, 1), (72, 2), (114, 2), (121, 1)], [], [], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (9, 1), (11, 2), (12, 1), (14, 1), (15, 2), (16, 2), (34, 2), (57, 2), (58, 1), (72, 2)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (9, 1), (12, 1), (14, 1), (15, 1), (16, 2), (34, 2), (57, 2), (58, 1), (72, 2)], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (15, 1), (34, 2), (57, 2), (58, 1), (72, 2)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (9, 1), (11, 2), (12, 1), (14, 1), (15, 1), (34, 2), (57, 2), (58, 1), (72, 2)], [(0, 1), (3, 2), (12, 2), (15, 1), (21, 1), (34, 2), (51, 2), (57, 1), (58, 2), (63, 1), (72, 1)], [], [(0, 1), (1, 2), (3, 2), (4, 1), (8, 1), (12, 2), (14, 1), (15, 2), (16, 2), (24, 2), (34, 1), (57, 1), (58, 2), (63, 2), (72, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (8, 1), (12, 1), (14, 2), (15, 2), (16, 1), (24, 2), (34, 1), (51, 1), (57, 2), (58, 1), (63, 1), (72, 2)], [(0, 2), (3, 2), (4, 2), (6, 2), (8, 2), (12, 1), (14, 2), (15, 2), (16, 1), (24, 2), (34, 1), (51, 1), (57, 2), (58, 1), (63, 1), (72, 2)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (9, 2), (11, 1), (12, 2), (14, 2), (15, 2), (16, 1), (24, 2), (34, 1), (51, 2), (58, 2), (60, 1), (72, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (12, 1), (14, 2), (15, 2), (16, 1), (24, 2), (34, 1), (57, 1), (58, 2), (63, 2), (72, 2)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (6, 1), (9, 2), (12, 2), (14, 2), (16, 1), (24, 2), (34, 1), (51, 2), (58, 2), (60, 1), (66, 1), (67, 2), (72, 1)], [], [], [], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (8, 1), (12, 2), (14, 1), (15, 1), (16, 2), (24, 2), (34, 2), (57, 1), (58, 2), (63, 2), (72, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (8, 1), (9, 2), (11, 1), (12, 2), (14, 2), (15, 1), (16, 1), (24, 2), (34, 2), (57, 1), (58, 2), (63, 2), (72, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (8, 1), (12, 1), (14, 2), (15, 1), (16, 1), (24, 2), (34, 2), (51, 1), (57, 2), (58, 1), (63, 1), (72, 2)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (8, 2), (12, 1), (14, 2), (15, 1), (16, 1), (24, 2), (34, 2), (51, 1), (57, 2), (58, 1), (63, 1), (72, 2)], [], [], [], [], [], [], [], [], [], [], [], [(0, 1), (2, 1), (3, 2), (4, 2), (6, 2), (9, 1), (11, 2), (12, 1), (14, 1), (15, 2), (16, 1), (24, 1), (34, 1), (51, 1), (58, 1), (72, 2), (114, 2), (130, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (9, 1), (11, 2), (12, 1), (14, 1), (15, 1), (16, 2), (34, 2), (58, 1), (72, 2), (114, 2), (127, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (9, 1), (11, 2), (12, 1), (14, 1), (15, 1), (16, 2), (34, 2), (58, 1), (72, 2), (114, 2), (137, 1)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (11, 1), (12, 2), (14, 2), (15, 2), (16, 1), (34, 1), (51, 2), (57, 2), (58, 2), (63, 1), (72, 1), (114, 1), (121, 2), (314, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (8, 2), (9, 2), (11, 1), (12, 2), (14, 2), (15, 2), (24, 1), (34, 1), (44, 1), (57, 1), (58, 2), (72, 1)], [(1, 1), (2, 1), (3, 2), (4, 2), (6, 2), (9, 1), (11, 1), (12, 2), (24, 1), (34, 1), (51, 2), (57, 2), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (99, 1)], [], [], [], [], [(1, 1), (4, 2), (8, 1), (16, 1), (24, 2), (51, 2), (57, 2), (114, 1), (130, 2), (470, 1)], [(8, 1), (63, 2)], [], [], [], [], [], [], [(8, 1), (24, 2)], [(0, 2), (2, 1), (9, 1), (11, 2), (13, 1), (14, 2), (16, 1), (24, 2)], [(6, 2), (8, 1), (18, 1), (24, 2)], [], [], [(1, 2), (2, 1), (6, 1), (8, 2), (9, 1), (12, 2), (15, 2), (16, 2), (51, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 2), (67, 1), (72, 1), (73, 1)], [(1, 2), (2, 1), (6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (15, 2), (51, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 2), (67, 1), (68, 1), (72, 1)], [(6, 1), (8, 2), (15, 2), (51, 1), (57, 1), (60, 2), (63, 2), (67, 1)], [], [], [], [], [], [], [], [], [], []] + +def comb40 : List (List (Nat × Nat)) := [[], [(2, 2), (5, 1), (8, 2), (14, 1), (16, 2), (24, 1), (63, 1)], [], [(2, 2), (5, 1), (8, 2), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (172, 1)], [(2, 1), (3, 1), (4, 2), (5, 2), (8, 2), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (233, 1)], [(3, 1), (4, 2), (6, 1), (8, 1), (14, 2), (16, 1), (24, 1), (57, 2), (63, 1), (114, 2)], [], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (14, 2), (16, 1), (24, 1), (57, 1), (63, 2), (114, 2)], [], [], [], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (14, 2), (16, 1), (18, 2), (24, 2), (57, 1), (63, 1), (75, 1), (114, 2)], [], [], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (9, 2), (11, 1), (14, 1), (16, 2), (19, 2), (20, 1), (24, 1), (57, 2), (63, 1), (114, 1)], [(2, 2), (5, 1), (8, 2), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [(0, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (9, 1), (11, 2), (14, 2), (16, 1), (19, 2), (24, 2), (34, 1), (57, 2), (64, 1), (114, 1)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (9, 1), (11, 2), (14, 2), (16, 1), (19, 2), (24, 2), (34, 1), (57, 2), (63, 1), (114, 1)], [], [], [], [], [], [], [], [(0, 1), (2, 2), (7, 1), (9, 2), (11, 1), (14, 1), (16, 2), (19, 2), (34, 2), (57, 1), (63, 2), (114, 2)], [(0, 2), (2, 1), (3, 1), (6, 2), (7, 2), (8, 1), (9, 1), (11, 1), (14, 1), (16, 2), (19, 1), (34, 2), (57, 1), (63, 2), (114, 2)], [], [], [(0, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 1), (12, 1), (19, 2), (34, 2), (57, 1), (63, 2), (114, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 1), (11, 1), (14, 1), (19, 1), (34, 2), (57, 1), (63, 2), (114, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 1), (11, 1), (19, 1), (21, 1), (34, 2), (57, 1), (63, 2), (114, 2)], [(0, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (9, 2), (11, 1), (14, 1), (16, 2), (19, 2), (24, 2), (34, 1)], [], [(0, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (9, 1), (11, 2), (14, 2), (16, 1), (19, 1), (24, 2), (34, 1)], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 2), (14, 2), (16, 1), (19, 2), (24, 2), (34, 1)], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 1), (14, 2), (16, 1), (19, 2), (24, 2), (34, 1), (57, 2), (63, 1), (117, 1)], [(0, 1), (2, 2), (6, 1), (7, 1), (9, 1), (11, 2), (14, 2), (16, 1), (19, 2), (24, 2), (34, 1), (57, 2), (63, 1), (115, 1)], [(0, 1), (3, 1), (4, 1), (5, 2), (6, 2), (7, 1), (8, 2), (9, 2), (11, 2), (14, 2), (16, 1), (19, 2), (24, 2), (34, 1), (63, 1), (64, 2), (120, 1)], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (9, 2), (11, 1), (14, 1), (16, 2), (19, 1), (24, 2), (34, 2)], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (9, 1), (11, 2), (14, 2), (16, 1), (19, 1), (24, 2), (34, 2)], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (8, 2), (9, 1), (10, 1), (11, 2), (14, 2), (16, 1), (19, 1), (24, 2), (34, 2)], [], [], [], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (9, 2), (11, 2), (14, 1), (16, 1), (19, 2), (24, 1), (34, 1), (63, 2), (73, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (14, 1), (16, 2), (19, 1), (34, 2), (63, 2), (71, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (14, 1), (16, 2), (19, 1), (34, 2), (63, 2), (80, 1)], [], [], [], [], [(0, 1), (2, 1), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (11, 1), (14, 2), (16, 1), (19, 2), (34, 1), (57, 1), (63, 2), (114, 1), (314, 1)], [(0, 1), (2, 1), (5, 1), (7, 2), (8, 2), (9, 2), (11, 2), (14, 2), (19, 1), (24, 1), (34, 1), (44, 1), (57, 2), (63, 1), (114, 1)], [], [(0, 2), (5, 1), (7, 2), (8, 2), (9, 2), (11, 2), (14, 2), (19, 1), (24, 1), (34, 1), (57, 2), (63, 2), (64, 2), (114, 1), (157, 1)], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 1), (11, 2), (18, 1), (19, 1), (20, 2), (24, 2), (57, 1), (75, 2), (114, 2), (470, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (57, 1), (63, 2), (114, 2)], [], [], [], [], [], [], [], [(2, 1), (5, 2), (13, 1), (14, 2), (16, 1), (24, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (18, 1), (24, 2)], [], [(2, 1), (4, 1), (5, 2), (16, 2), (63, 2), (64, 1), (120, 2), (130, 1)], [], [(2, 1), (5, 2), (63, 2), (68, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (63, 2), (66, 1)], [], [], [], [], [], [], [], [], [], []] + +def comb41 : List (List (Nat × Nat)) := [[], [(3, 1), (4, 2), (9, 2), (18, 2), (21, 1), (24, 1), (68, 1)], [(3, 1), (4, 2), (9, 2), (18, 2), (21, 1), (24, 1), (57, 2), (68, 1), (114, 1)], [], [(3, 2), (4, 1), (6, 1), (9, 1), (18, 1), (21, 2), (24, 1), (57, 2), (63, 2), (68, 2), (233, 1)], [(6, 2), (24, 1), (57, 2), (63, 1), (172, 2)], [], [], [], [(3, 1), (4, 2), (6, 2), (9, 2), (21, 1), (24, 1), (57, 1), (63, 1), (68, 1), (172, 2)], [], [], [], [], [(3, 1), (4, 2), (9, 2), (18, 2), (21, 1), (24, 1), (57, 2), (68, 1), (172, 1)], [(3, 1), (4, 2), (7, 1), (9, 2), (10, 2), (14, 1), (16, 2), (18, 2), (19, 2), (20, 1), (21, 1), (24, 1), (57, 2), (68, 1), (172, 1)], [], [(3, 2), (4, 1), (8, 1), (9, 1), (18, 1), (21, 2), (24, 1), (57, 2), (63, 2), (68, 2), (172, 1)], [], [], [(3, 2), (4, 1), (6, 1), (9, 1), (18, 1), (21, 2), (24, 1), (57, 2), (63, 2), (68, 2), (172, 1)], [], [(1, 1), (3, 2), (4, 1), (7, 1), (9, 2), (10, 1), (14, 2), (15, 2), (16, 1), (18, 1), (19, 1), (21, 1), (24, 2), (34, 1), (57, 2), (64, 1), (172, 1)], [], [], [], [(1, 1), (3, 2), (4, 1), (7, 1), (9, 2), (10, 1), (14, 2), (15, 2), (16, 1), (18, 1), (19, 1), (21, 1), (24, 2), (34, 1), (57, 2), (68, 1), (172, 1)], [], [], [], [(1, 1), (7, 1), (9, 1), (10, 1), (14, 2), (15, 2), (16, 1), (19, 1), (21, 2), (34, 1), (57, 1), (58, 1), (66, 1), (68, 1), (72, 2), (172, 1)], [(1, 2), (6, 2), (9, 2), (10, 2), (14, 1), (15, 1), (16, 2), (18, 1), (19, 1), (21, 1), (34, 2), (57, 1), (63, 1), (68, 1), (172, 2)], [], [(1, 2), (3, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 2), (14, 1), (15, 1), (16, 2), (19, 2), (21, 1), (34, 2), (57, 1), (68, 2), (172, 2)], [(1, 1), (3, 2), (4, 1), (8, 2), (9, 2), (10, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 1), (21, 1), (34, 2), (57, 1), (63, 1), (68, 1), (172, 2)], [(1, 2), (7, 2), (9, 2), (10, 2), (14, 1), (15, 1), (16, 2), (19, 2), (21, 1), (34, 2), (57, 1), (68, 2), (172, 2)], [], [(1, 2), (7, 2), (9, 1), (10, 2), (14, 2), (15, 1), (16, 2), (19, 2), (21, 1), (34, 2), (57, 1), (68, 2), (172, 2)], [], [(1, 1), (3, 1), (4, 2), (6, 1), (8, 2), (10, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (24, 2), (34, 1)], [(1, 2), (3, 2), (4, 1), (10, 1), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (24, 2), (34, 1)], [], [(1, 1), (3, 1), (4, 2), (7, 1), (8, 2), (9, 1), (10, 1), (14, 2), (15, 2), (16, 1), (18, 2), (19, 1), (24, 2), (34, 1), (63, 1), (68, 2)], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (10, 2), (14, 1), (15, 1), (16, 2), (18, 1), (19, 2), (24, 1), (34, 2), (63, 2), (66, 2), (68, 1), (72, 1)], [], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (10, 2), (14, 1), (15, 1), (16, 2), (18, 1), (19, 2), (24, 1), (34, 2), (57, 1), (58, 2), (63, 2), (66, 2), (68, 1), (72, 1), (114, 2), (115, 1)], [], [(1, 1), (9, 2), (10, 2), (14, 1), (15, 2), (16, 2), (18, 1), (19, 2), (20, 2), (21, 1), (24, 2), (34, 1), (57, 2), (68, 1), (174, 1)], [], [(1, 1), (3, 1), (4, 1), (7, 1), (8, 2), (9, 1), (10, 1), (14, 2), (15, 2), (16, 1), (18, 2), (19, 1), (24, 2), (34, 1), (63, 1), (64, 2), (181, 1)], [], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (9, 2), (10, 2), (14, 1), (15, 1), (16, 2), (19, 2), (21, 1), (24, 2), (34, 2), (63, 2), (68, 1)], [], [(1, 2), (8, 1), (9, 2), (10, 1), (14, 1), (15, 1), (16, 2), (19, 2), (21, 1), (24, 2), (34, 2), (63, 2), (68, 1)], [], [(1, 2), (7, 2), (8, 1), (9, 2), (10, 2), (15, 1), (19, 2), (21, 1), (24, 2), (34, 2), (63, 2), (68, 1)], [], [(1, 2), (3, 2), (4, 1), (10, 1), (14, 1), (15, 1), (16, 2), (18, 1), (19, 1), (22, 1), (24, 2), (34, 2)], [(1, 1), (6, 2), (7, 1), (9, 1), (10, 1), (14, 2), (15, 2), (16, 1), (19, 1), (21, 2), (24, 1), (34, 1), (63, 1), (66, 1), (68, 1)], [], [(1, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 1), (10, 1), (14, 1), (15, 1), (16, 2), (18, 2), (19, 2), (21, 2), (24, 1), (34, 1), (67, 1), (68, 2)], [], [(1, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 1), (10, 1), (14, 1), (15, 1), (16, 2), (19, 1), (21, 2), (34, 2), (68, 2), (71, 1)], [], [], [(1, 1), (9, 1), (10, 2), (14, 1), (15, 1), (16, 2), (19, 1), (21, 2), (34, 2), (57, 1), (68, 2), (114, 2), (127, 1)], [], [], [(1, 1), (6, 1), (8, 2), (9, 1), (10, 2), (14, 2), (15, 2), (16, 1), (19, 1), (21, 2), (34, 1), (57, 1), (68, 2), (172, 1), (314, 1)], [(1, 1), (3, 1), (4, 2), (7, 1), (9, 1), (10, 1), (14, 1), (15, 2), (16, 1), (18, 2), (19, 1), (24, 1), (34, 1), (44, 1), (57, 2), (63, 2), (68, 2), (172, 1)], [], [], [], [(1, 1), (3, 1), (4, 2), (6, 1), (9, 1), (10, 1), (14, 1), (15, 2), (16, 1), (18, 1), (19, 2), (24, 1), (34, 1), (57, 2), (63, 2), (64, 2), (172, 1), (216, 1)], [], [(1, 2), (3, 2), (4, 1), (8, 2), (9, 1), (10, 1), (15, 1), (18, 2), (20, 2), (21, 2), (24, 2), (57, 1), (63, 1), (67, 2), (68, 2), (172, 2), (470, 1)], [(3, 2), (4, 1), (9, 1), (18, 1), (21, 2), (57, 1), (68, 2), (172, 2)], [], [], [], [], [], [], [(3, 2), (4, 1), (9, 1), (18, 1), (21, 2), (24, 2), (63, 1), (68, 2)], [(3, 2), (4, 1), (8, 2), (9, 1), (13, 1), (18, 1), (21, 2), (24, 2), (63, 1), (68, 2)], [], [], [(9, 1), (14, 2), (57, 1), (68, 2), (114, 2), (130, 1)], [(9, 1), (14, 2), (68, 2), (73, 1)], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb42 : List (List (Nat × Nat)) := [[], [(1, 2), (2, 2), (5, 2), (7, 1), (12, 2), (18, 1), (19, 2), (24, 2), (25, 1), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1)], [(0, 1), (1, 2), (2, 1), (5, 2), (6, 2), (7, 1), (8, 1), (12, 2), (18, 1), (19, 2), (24, 2), (25, 1), (57, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (114, 1)], [(1, 1), (5, 2), (7, 2), (12, 1), (15, 1), (18, 1), (19, 1), (24, 2), (25, 1), (57, 2), (65, 1), (66, 1), (67, 1), (68, 2), (72, 2), (172, 1)], [], [(0, 2), (2, 2), (5, 2), (15, 2), (18, 1), (24, 2), (25, 1), (57, 2), (67, 1), (233, 2)], [], [], [], [], [(1, 2), (5, 1), (7, 1), (12, 2), (15, 2), (18, 1), (19, 2), (24, 2), (25, 2), (57, 1), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 2)], [], [], [(0, 2), (1, 2), (5, 2), (7, 1), (8, 2), (12, 2), (18, 2), (19, 2), (24, 2), (25, 1), (57, 1), (63, 1), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (233, 2)], [(0, 1), (1, 2), (2, 1), (5, 2), (7, 1), (12, 2), (18, 1), (19, 2), (24, 2), (25, 1), (57, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (233, 1)], [(0, 1), (1, 2), (2, 1), (5, 2), (7, 1), (12, 2), (18, 1), (19, 1), (20, 1), (24, 2), (25, 1), (57, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (233, 1)], [(1, 1), (5, 2), (6, 1), (7, 2), (8, 2), (12, 1), (15, 1), (18, 1), (19, 1), (24, 2), (25, 1), (57, 2), (65, 1), (66, 1), (67, 1), (68, 2), (72, 2), (233, 1)], [], [(0, 1), (1, 1), (2, 2), (5, 2), (7, 2), (12, 1), (15, 1), (18, 1), (19, 1), (24, 2), (25, 1), (57, 2), (65, 1), (66, 1), (67, 1), (68, 2), (72, 2), (233, 1)], [(1, 1), (5, 2), (7, 2), (12, 1), (15, 1), (18, 1), (19, 1), (24, 2), (25, 1), (57, 2), (65, 1), (66, 1), (67, 1), (68, 2), (72, 2), (233, 1)], [], [], [(0, 1), (1, 1), (2, 1), (5, 2), (6, 2), (7, 2), (8, 2), (12, 2), (15, 1), (19, 1), (24, 2), (25, 1), (34, 1), (57, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (233, 1)], [], [], [], [], [(1, 1), (2, 1), (6, 2), (7, 2), (8, 1), (12, 2), (15, 2), (19, 1), (34, 1), (57, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (233, 1)], [], [], [], [(1, 1), (5, 1), (6, 1), (8, 2), (12, 2), (18, 2), (24, 1), (25, 2), (34, 2), (57, 1), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 2)], [(0, 2), (2, 2), (5, 1), (6, 2), (8, 1), (12, 1), (15, 1), (18, 2), (24, 1), (25, 2), (34, 2), (57, 1), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (233, 2)], [], [(5, 1), (6, 1), (8, 2), (12, 2), (15, 1), (18, 2), (24, 1), (25, 2), (34, 2), (57, 1), (65, 2), (66, 2), (67, 2), (68, 1), (72, 1), (233, 2)], [], [(0, 2), (2, 1), (5, 1), (6, 1), (8, 2), (12, 2), (15, 1), (18, 2), (24, 1), (25, 2), (34, 2), (57, 1), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (233, 2)], [], [], [(1, 1), (6, 1), (7, 2), (8, 2), (15, 2), (19, 2), (34, 1)], [(0, 2), (1, 2), (2, 1), (6, 2), (7, 1), (8, 1), (15, 2), (19, 2), (34, 1)], [(0, 1), (1, 2), (2, 2), (6, 1), (7, 1), (8, 2), (12, 1), (15, 1), (19, 2), (34, 1), (65, 1), (66, 1), (68, 2), (72, 2)], [], [], [], [(1, 1), (6, 1), (7, 2), (8, 2), (15, 2), (19, 1), (34, 2), (65, 2), (68, 1)], [], [], [(0, 2), (1, 1), (2, 1), (6, 2), (7, 2), (8, 1), (15, 2), (19, 1), (34, 2), (57, 1), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1)], [], [(1, 1), (2, 2), (5, 2), (6, 2), (7, 2), (8, 1), (12, 2), (15, 2), (19, 2), (20, 2), (34, 1), (57, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (236, 1)], [(1, 2), (2, 2), (6, 1), (7, 1), (8, 2), (12, 1), (15, 1), (19, 2), (34, 2), (57, 1), (64, 2), (66, 1), (72, 2), (172, 2), (181, 1)], [], [], [], [(2, 1), (6, 1), (8, 2), (12, 2), (15, 2), (18, 1), (24, 2), (25, 1), (34, 2), (65, 2), (66, 2), (68, 1), (72, 1)], [], [(2, 2), (5, 2), (6, 2), (7, 2), (8, 1), (10, 1), (12, 2), (15, 2), (18, 1), (24, 2), (25, 1), (34, 2), (65, 2), (66, 2), (68, 1), (72, 1)], [], [(2, 2), (5, 2), (6, 2), (8, 1), (12, 1), (15, 2), (17, 1), (18, 1), (24, 2), (25, 1), (34, 2), (65, 2), (66, 2), (68, 1), (72, 1)], [(0, 1), (1, 1), (5, 2), (6, 1), (7, 2), (8, 2), (15, 1), (18, 1), (22, 1), (24, 2), (25, 1), (34, 2)], [(2, 1), (5, 1), (6, 2), (8, 1), (12, 1), (15, 1), (18, 2), (24, 1), (25, 2), (34, 1), (65, 2), (66, 2), (67, 2), (68, 1), (72, 2)], [(2, 1), (5, 1), (6, 2), (8, 1), (12, 1), (15, 1), (18, 2), (24, 1), (25, 2), (34, 1), (65, 2), (66, 1), (67, 2), (68, 2), (72, 2)], [], [(0, 2), (2, 2), (5, 1), (6, 2), (8, 1), (12, 1), (15, 1), (18, 2), (24, 1), (25, 2), (34, 1), (65, 1), (68, 2), (73, 1), (74, 2)], [], [], [(2, 1), (5, 1), (6, 1), (8, 2), (12, 1), (15, 1), (18, 2), (24, 1), (25, 2), (34, 1), (57, 2), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2), (130, 1), (131, 2)], [], [], [], [(0, 1), (2, 2), (5, 2), (6, 1), (8, 2), (12, 2), (15, 2), (17, 2), (18, 1), (24, 2), (25, 1), (34, 1), (57, 1), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (233, 1), (314, 1)], [(1, 2), (5, 2), (6, 1), (7, 1), (8, 1), (12, 1), (18, 2), (19, 2), (24, 2), (25, 1), (34, 1), (44, 1), (57, 2), (65, 1), (66, 1), (67, 1), (68, 2), (72, 2), (233, 1)], [], [], [], [], [(1, 1), (2, 1), (5, 2), (6, 2), (7, 1), (15, 1), (18, 2), (19, 2), (24, 2), (25, 1), (34, 1), (57, 2), (63, 1), (64, 2), (66, 1), (67, 1), (72, 2), (233, 1), (274, 1)], [(0, 2), (1, 1), (2, 2), (5, 1), (7, 2), (12, 2), (17, 2), (18, 2), (19, 2), (20, 2), (24, 1), (25, 2), (57, 2), (64, 2), (65, 1), (66, 2), (67, 2), (68, 2), (72, 1), (114, 2), (120, 1), (130, 2), (131, 1), (233, 2), (470, 1)], [(0, 2), (1, 1), (2, 2), (5, 1), (7, 2), (12, 1), (19, 1), (24, 1), (25, 2), (57, 1), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (233, 2)], [], [], [], [], [], [], [(0, 1), (1, 1), (2, 1), (7, 2), (8, 1), (12, 1), (15, 2), (18, 2), (19, 1), (65, 1), (66, 1), (68, 2), (72, 2)], [(1, 1), (2, 2), (7, 2), (12, 1), (13, 1), (15, 2), (18, 2), (19, 1), (65, 1), (66, 1), (68, 2), (72, 2)], [], [], [(6, 1), (8, 2), (57, 1), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (114, 2), (131, 1)], [(0, 1), (2, 2), (65, 1), (66, 1), (67, 2), (68, 2), (72, 2), (74, 1)], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb43 : List (List (Nat × Nat)) := [[(0, 2), (4, 1), (13, 1), (16, 2), (24, 1)], [], [(6, 2), (13, 1), (16, 2), (24, 1), (57, 2), (63, 1), (64, 2), (68, 1), (114, 1)], [(0, 2), (4, 1), (8, 2), (13, 2), (16, 1), (24, 1), (57, 2), (63, 1), (64, 2), (68, 1), (172, 1)], [(0, 2), (4, 1), (8, 2), (13, 2), (16, 1), (24, 1), (57, 2), (63, 1), (64, 2), (68, 1), (233, 1)], [], [(0, 2), (4, 2), (7, 1), (13, 1), (16, 2), (24, 1), (64, 1), (68, 2), (71, 2), (74, 1), (293, 2)], [], [(0, 1), (4, 2), (7, 1), (13, 2), (16, 2), (24, 1), (64, 1), (68, 2), (71, 2), (74, 1), (293, 2)], [], [], [(7, 2), (8, 1), (18, 2), (24, 1), (63, 2), (71, 1), (74, 2), (75, 1), (293, 1)], [], [(0, 2), (4, 1), (7, 2), (13, 1), (16, 2), (24, 1), (71, 1), (74, 2), (293, 1)], [], [(0, 2), (2, 2), (4, 2), (9, 2), (11, 1), (12, 1), (13, 1), (16, 1), (20, 1), (24, 2), (64, 1), (68, 2), (71, 2), (74, 1), (293, 2)], [], [], [(7, 2), (13, 1), (16, 2), (24, 1), (64, 2), (68, 1), (71, 1), (74, 2), (293, 1)], [], [], [(0, 2), (4, 1), (7, 2), (13, 1), (16, 2), (24, 1), (64, 2), (68, 1), (71, 1), (74, 2), (293, 1)], [], [(0, 2), (2, 1), (7, 1), (9, 2), (11, 1), (12, 2), (64, 1), (66, 2), (71, 2), (72, 1), (74, 1), (293, 1)], [], [(0, 1), (2, 2), (7, 1), (9, 2), (11, 1), (12, 1), (13, 1), (64, 1), (66, 2), (71, 2), (72, 1), (74, 1), (293, 1)], [], [], [], [], [(0, 2), (2, 1), (7, 2), (9, 1), (11, 2), (12, 2), (13, 2), (16, 1), (24, 2), (58, 1), (64, 2), (66, 2), (68, 2), (71, 1), (72, 1), (74, 2), (293, 2)], [], [], [], [], [(0, 2), (2, 2), (4, 2), (7, 2), (9, 2), (11, 2), (12, 1), (13, 2), (16, 1), (24, 2), (64, 2), (66, 1), (71, 1), (72, 2), (74, 2), (293, 2)], [], [], [(0, 2), (2, 2), (4, 2), (7, 2), (9, 1), (11, 2), (12, 1), (13, 2), (16, 1), (21, 1), (24, 2), (64, 2), (66, 1), (71, 1), (72, 2), (74, 2), (293, 2)], [(0, 1), (2, 2), (7, 2), (9, 2), (11, 1), (12, 1), (64, 1), (66, 1), (68, 1), (71, 2), (72, 2), (74, 1)], [], [], [], [], [(0, 1), (2, 2), (7, 2), (9, 2), (11, 1), (12, 1), (64, 2), (66, 1), (71, 1), (72, 2), (74, 2)], [(0, 2), (2, 1), (7, 2), (9, 1), (11, 1), (12, 2), (64, 2), (66, 2), (71, 1), (72, 1), (74, 2)], [(2, 2), (4, 1), (6, 1), (7, 1), (9, 2), (11, 1), (12, 1), (57, 1), (63, 2), (64, 2), (66, 1), (71, 2), (72, 2), (74, 1), (114, 2), (117, 1)], [], [], [(7, 2), (8, 1), (9, 2), (11, 1), (16, 1), (20, 2), (57, 1), (63, 2), (64, 2), (66, 1), (71, 2), (72, 2), (74, 1), (172, 2), (174, 1)], [(7, 2), (8, 1), (9, 2), (11, 1), (16, 1), (20, 2), (57, 1), (63, 2), (64, 2), (66, 1), (71, 2), (72, 2), (74, 1), (233, 2), (236, 1)], [], [], [(0, 1), (2, 2), (7, 1), (9, 1), (11, 2), (12, 2), (16, 2), (24, 1), (64, 1), (66, 1), (68, 1), (71, 2), (72, 2), (74, 1)], [], [], [(2, 1), (4, 2), (7, 2), (9, 1), (11, 2), (12, 2), (13, 2), (16, 1), (24, 2), (64, 2), (66, 2), (68, 2), (71, 1), (72, 1), (74, 2)], [(2, 1), (4, 2), (7, 1), (9, 1), (10, 1), (11, 2), (12, 2), (13, 2), (16, 1), (24, 2), (64, 2), (66, 2), (68, 2), (71, 1), (72, 1), (74, 2)], [], [], [(2, 1), (4, 2), (7, 1), (9, 1), (11, 2), (12, 2), (13, 2), (16, 1), (22, 1), (24, 2), (64, 2), (66, 2), (68, 2), (71, 1), (72, 1), (74, 2)], [(0, 1), (2, 1), (4, 1), (7, 1), (9, 1), (11, 2), (12, 2), (16, 2), (24, 1), (64, 1), (66, 2), (71, 2), (72, 2), (74, 1)], [], [], [(0, 1), (2, 2), (7, 1), (9, 2), (11, 2), (12, 1), (16, 2), (24, 1), (64, 1), (66, 1), (71, 2), (72, 2), (73, 1), (74, 1)], [(0, 2), (2, 1), (7, 1), (9, 1), (11, 2), (12, 2), (16, 2), (24, 1), (64, 1), (66, 2), (71, 2), (72, 1), (74, 2)], [], [], [], [(0, 2), (2, 2), (4, 2), (6, 1), (7, 2), (9, 2), (11, 1), (12, 1), (13, 2), (16, 1), (24, 2), (57, 1), (58, 2), (63, 2), (64, 2), (66, 1), (71, 1), (72, 2), (74, 2), (114, 2), (137, 1)], [], [(2, 2), (4, 1), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (16, 2), (24, 1), (63, 2), (64, 1), (66, 1), (68, 1), (72, 2), (293, 1), (314, 1)], [], [(0, 1), (2, 1), (4, 1), (7, 1), (8, 2), (9, 1), (11, 1), (12, 2), (13, 2), (16, 1), (24, 2), (57, 2), (63, 1), (66, 2), (68, 1), (71, 2), (72, 1), (74, 1), (99, 1), (293, 1)], [], [(0, 1), (2, 1), (4, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (16, 1), (24, 2), (66, 2), (68, 1), (72, 1), (293, 1), (392, 1)], [], [], [(0, 2), (2, 1), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (13, 1), (18, 1), (20, 2), (24, 2), (63, 1), (71, 2), (74, 1), (75, 2), (293, 2), (470, 1)], [], [(7, 1), (8, 2), (63, 1), (71, 2), (74, 1), (293, 2)], [], [], [], [], [(8, 1), (13, 2), (16, 1), (24, 2), (57, 1), (63, 2), (64, 1), (68, 2)], [(0, 1), (4, 2), (8, 1), (13, 2), (16, 1), (24, 2)], [], [(18, 1), (24, 2)], [], [(6, 1), (13, 2), (57, 1), (63, 2), (64, 1), (68, 2), (114, 2), (130, 1)], [], [], [], [], [(0, 1), (4, 2), (13, 2), (16, 1)], [], [(6, 1), (8, 2)], [], [], [], [], [], []] + +def comb44 : List (List (Nat × Nat)) := [[(9, 2), (11, 1), (14, 1), (16, 2), (24, 1)], [], [(6, 2), (9, 2), (11, 1), (14, 1), (16, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (114, 1)], [], [(8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [(3, 1), (8, 1), (24, 1), (57, 1), (63, 2), (64, 1), (66, 2), (172, 2)], [], [], [(8, 1), (9, 2), (11, 1), (14, 1), (16, 2), (18, 1), (24, 1), (57, 1), (63, 2), (64, 1), (66, 2), (172, 2)], [], [(9, 2), (11, 1), (14, 1), (16, 2), (18, 2), (24, 1), (57, 2), (75, 1), (172, 1)], [(1, 2), (3, 1), (8, 2), (9, 2), (11, 1), (14, 1), (15, 1), (16, 2), (18, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (67, 2), (77, 1), (172, 1)], [(8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [], [], [(6, 1), (9, 2), (11, 1), (14, 1), (16, 2), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (172, 2)], [], [], [], [(8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (172, 1)], [], [], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 1), (14, 1), (15, 2), (16, 2), (57, 2), (60, 2), (63, 1), (64, 1), (66, 2), (67, 1), (71, 1), (172, 1)], [], [], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 1), (9, 2), (11, 1), (14, 1), (15, 2), (16, 2), (57, 2), (60, 2), (63, 1), (64, 1), (66, 2), (67, 1), (71, 1), (172, 1)], [], [], [(1, 1), (3, 2), (6, 2), (7, 1), (8, 2), (9, 2), (11, 1), (14, 1), (15, 2), (16, 2), (24, 2), (57, 1), (60, 2), (63, 2), (64, 2), (66, 1), (67, 1), (71, 2), (172, 2)], [], [], [(0, 1), (1, 1), (3, 1), (6, 2), (7, 2), (9, 2), (11, 1), (12, 2), (14, 2), (15, 2), (16, 1), (24, 1), (57, 2), (60, 2), (63, 1), (64, 1), (66, 2), (67, 1), (71, 1), (172, 1)], [], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 1), (14, 1), (15, 2), (16, 2), (24, 2), (57, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (71, 2), (172, 2)], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 2), (14, 1), (15, 1), (16, 2), (24, 2), (57, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (71, 2), (172, 2)], [], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (14, 2), (15, 1), (16, 2), (24, 2), (57, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (71, 2), (172, 2)], [], [(1, 2), (3, 1), (6, 1), (7, 2), (8, 2), (15, 1), (60, 1), (64, 1), (66, 2), (67, 2), (71, 2)], [], [(1, 2), (3, 1), (6, 1), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (15, 1), (60, 1), (64, 1), (66, 2), (67, 2), (71, 2)], [], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 2), (15, 1), (60, 2), (64, 2), (66, 1), (67, 2), (71, 1)], [], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 2), (11, 2), (15, 2), (60, 2), (64, 2), (66, 2), (67, 1), (71, 1)], [], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 1), (15, 1), (57, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (71, 2), (114, 2), (115, 1)], [], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (15, 1), (60, 1), (64, 2), (66, 1), (67, 2), (71, 1), (174, 1)], [], [(3, 2), (6, 1), (7, 2), (8, 2), (15, 2), (60, 2), (64, 1), (66, 2), (67, 1), (71, 1), (181, 1)], [], [], [(6, 2), (7, 1), (8, 1), (9, 2), (11, 1), (14, 1), (15, 1), (16, 2), (24, 1), (60, 1), (64, 1), (66, 2), (67, 2), (71, 2)], [], [], [(1, 1), (3, 2), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 2), (14, 2), (15, 2), (16, 1), (24, 2), (60, 2), (64, 2), (66, 1), (67, 1), (71, 1)], [], [(1, 1), (3, 2), (6, 2), (7, 2), (8, 1), (9, 1), (11, 2), (12, 2), (15, 2), (17, 1), (24, 2), (60, 2), (64, 2), (66, 1), (67, 1), (71, 1)], [], [], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (11, 1), (14, 1), (15, 1), (16, 2), (24, 1), (60, 1), (64, 1), (65, 1), (66, 2), (67, 1), (71, 2)], [], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 1), (11, 1), (15, 1), (16, 2), (24, 1), (60, 1), (64, 1), (66, 1), (67, 2), (71, 2), (73, 1)], [], [(1, 1), (3, 2), (6, 2), (7, 1), (8, 1), (15, 2), (18, 2), (24, 1), (60, 2), (64, 1), (66, 2), (67, 1), (71, 1), (80, 1)], [], [(1, 2), (3, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (14, 2), (15, 1), (16, 1), (24, 2), (57, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (71, 1), (114, 2), (127, 1)], [], [], [(1, 2), (3, 1), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (14, 1), (15, 1), (16, 2), (17, 2), (24, 1), (57, 2), (60, 1), (64, 1), (66, 2), (67, 2), (71, 2), (172, 1), (314, 1)], [], [(1, 1), (3, 2), (6, 1), (7, 2), (11, 2), (15, 2), (24, 2), (57, 1), (60, 2), (63, 2), (67, 1), (71, 1), (99, 1), (172, 1)], [], [], [(1, 1), (3, 2), (6, 1), (7, 2), (15, 2), (16, 2), (24, 2), (57, 1), (60, 2), (63, 2), (67, 1), (71, 1), (172, 1), (216, 1)], [], [(1, 2), (3, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 1), (14, 1), (16, 2), (17, 2), (18, 1), (24, 2), (57, 1), (75, 2), (172, 2), (470, 1)], [], [(9, 1), (11, 2), (14, 2), (16, 1), (57, 1), (172, 2)], [], [], [], [], [(8, 1), (9, 1), (11, 2), (14, 2), (16, 1), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2)], [(8, 1), (9, 1), (11, 2), (14, 2), (16, 1), (24, 2)], [(9, 1), (11, 2), (13, 1), (14, 2), (16, 1), (24, 2)], [], [], [(6, 1), (9, 1), (11, 2), (14, 2), (57, 1), (63, 2), (64, 1), (66, 2), (114, 2), (130, 1)], [], [], [], [], [(9, 1), (11, 2), (14, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb45 : List (List (Nat × Nat)) := [[(7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 1)], [], [(0, 1), (2, 2), (6, 2), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 1), (57, 2), (63, 1), (114, 1)], [(0, 1), (2, 2), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 1), (57, 2), (63, 1), (172, 1)], [], [], [(0, 2), (2, 2), (6, 1), (18, 1), (57, 1), (63, 2), (233, 2)], [], [], [], [(0, 2), (2, 1), (6, 1), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 1), (24, 1), (57, 1), (63, 2), (233, 2)], [(0, 1), (2, 2), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (57, 2), (75, 1), (233, 1)], [(7, 2), (8, 2), (10, 1), (11, 1), (15, 1), (16, 2), (17, 2), (18, 1), (57, 2), (63, 1), (65, 2), (77, 1), (233, 1)], [], [], [], [], [(0, 2), (2, 1), (7, 2), (8, 1), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 2), (57, 1), (63, 2), (233, 2)], [(0, 2), (2, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 1), (57, 2), (63, 1), (233, 1)], [(0, 1), (2, 2), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [(0, 1), (2, 2), (8, 2), (9, 2), (10, 2), (12, 2), (15, 2), (16, 1), (17, 1), (57, 2), (60, 2), (63, 1), (65, 1), (71, 1), (72, 1), (74, 2), (233, 1)], [], [], [], [(0, 1), (2, 2), (7, 2), (8, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (57, 2), (60, 2), (63, 1), (65, 1), (71, 1), (72, 1), (74, 2), (233, 1)], [], [(0, 1), (2, 2), (6, 1), (7, 2), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (18, 2), (57, 1), (60, 2), (63, 2), (65, 1), (71, 2), (72, 2), (74, 1), (233, 2)], [(0, 2), (2, 1), (7, 1), (8, 1), (9, 2), (11, 2), (12, 1), (15, 1), (16, 2), (18, 2), (57, 1), (58, 1), (60, 1), (63, 2), (65, 2), (71, 2), (72, 1), (74, 1), (233, 2)], [], [], [(0, 1), (2, 1), (3, 1), (6, 2), (7, 2), (11, 1), (15, 2), (16, 1), (18, 1), (57, 2), (60, 2), (63, 1), (65, 1), (71, 1), (72, 1), (74, 2), (233, 1)], [(0, 1), (2, 2), (6, 1), (7, 2), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (18, 2), (57, 1), (60, 1), (63, 2), (65, 2), (71, 2), (72, 2), (74, 1), (233, 2)], [], [(0, 2), (2, 1), (7, 1), (8, 1), (9, 2), (11, 2), (12, 1), (15, 1), (16, 2), (18, 2), (57, 1), (60, 1), (63, 2), (65, 2), (71, 2), (72, 2), (74, 1), (233, 2)], [], [], [(9, 1), (10, 2), (12, 2), (15, 1), (16, 2), (17, 1), (60, 1), (65, 2), (71, 2), (72, 2), (74, 1)], [], [], [(7, 2), (9, 1), (10, 2), (11, 1), (12, 2), (15, 1), (16, 2), (17, 1), (60, 1), (65, 2), (71, 2), (72, 2), (74, 1)], [(0, 1), (2, 2), (9, 1), (10, 2), (12, 2), (15, 1), (16, 2), (17, 1), (60, 2), (65, 2), (71, 1), (72, 1), (74, 2)], [(0, 2), (2, 1), (6, 1), (7, 1), (8, 2), (10, 1), (11, 2), (15, 2), (16, 1), (17, 2), (60, 2), (65, 1), (71, 1), (72, 2), (74, 2)], [], [], [], [(0, 2), (2, 1), (3, 2), (6, 1), (7, 2), (9, 1), (10, 2), (11, 1), (12, 2), (15, 1), (16, 2), (17, 1), (57, 1), (60, 1), (63, 2), (65, 2), (71, 2), (72, 2), (74, 1), (114, 2), (120, 1)], [], [(0, 1), (5, 2), (7, 2), (11, 1), (12, 2), (15, 1), (16, 2), (17, 1), (60, 1), (65, 2), (71, 1), (72, 1), (74, 2), (236, 1)], [(0, 2), (2, 1), (3, 2), (6, 1), (9, 2), (10, 1), (12, 1), (15, 1), (16, 2), (17, 2), (57, 1), (60, 1), (63, 2), (65, 2), (71, 2), (72, 2), (74, 1), (172, 2), (181, 1)], [], [], [], [(2, 2), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (11, 1), (15, 1), (16, 2), (18, 1), (60, 1), (65, 2), (71, 2), (72, 2), (74, 1)], [(7, 2), (11, 2), (15, 2), (16, 1), (18, 2), (60, 2), (65, 1), (71, 1), (72, 1), (74, 2)], [], [(7, 1), (9, 2), (10, 1), (11, 2), (12, 1), (15, 2), (16, 2), (17, 2), (18, 2), (60, 2), (65, 1), (71, 1), (72, 1), (74, 2)], [], [], [], [], [(6, 2), (7, 2), (8, 1), (10, 2), (11, 1), (15, 1), (16, 2), (18, 1), (60, 1), (65, 1), (67, 1), (71, 2), (72, 2), (74, 1)], [], [(0, 1), (2, 2), (6, 2), (7, 2), (8, 1), (10, 2), (11, 1), (15, 1), (16, 2), (18, 1), (60, 1), (65, 2), (71, 2), (72, 1), (74, 2)], [(9, 2), (10, 1), (12, 1), (15, 2), (16, 1), (17, 1), (18, 1), (58, 2), (60, 2), (65, 1), (71, 1), (72, 2), (74, 2), (80, 1)], [(0, 1), (2, 2), (3, 1), (6, 2), (7, 1), (9, 2), (10, 1), (11, 2), (12, 1), (15, 2), (16, 1), (18, 2), (57, 2), (60, 2), (63, 1), (65, 1), (71, 1), (72, 1), (74, 2), (114, 1), (120, 2), (130, 1), (131, 2)], [], [], [], [(0, 1), (2, 2), (9, 2), (10, 1), (11, 2), (12, 1), (15, 1), (16, 2), (17, 2), (18, 1), (57, 2), (60, 1), (65, 2), (71, 2), (72, 2), (74, 1), (233, 1), (314, 1)], [], [(0, 2), (2, 1), (6, 2), (7, 1), (8, 2), (10, 1), (11, 2), (15, 2), (16, 1), (17, 2), (18, 2), (57, 1), (60, 2), (63, 2), (65, 1), (71, 1), (72, 1), (74, 2), (99, 1), (233, 1)], [], [], [], [(0, 2), (2, 1), (6, 2), (8, 2), (9, 2), (10, 2), (12, 1), (15, 2), (16, 1), (17, 1), (18, 2), (57, 1), (60, 2), (63, 2), (65, 1), (71, 1), (72, 1), (74, 2), (233, 1), (274, 1)], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (12, 1), (17, 1), (57, 2), (63, 2), (65, 1), (67, 2), (75, 2), (114, 2), (120, 1), (130, 2), (131, 1), (233, 2), (470, 1)], [], [(0, 2), (2, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (57, 1), (233, 2)], [], [], [], [], [(0, 2), (2, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 2), (57, 1), (63, 2)], [(6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 2)], [(0, 2), (2, 1), (6, 1), (7, 1), (8, 2), (9, 1), (10, 2), (11, 2), (12, 2), (13, 1), (17, 1), (18, 2)], [], [], [(0, 2), (2, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (57, 1), (63, 2), (114, 2), (131, 1)], [], [], [], [], [(7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1)], [], [], [], [], [], [], [], []] + +def comb46 : List (List (Nat × Nat)) := [[(6, 2), (11, 1), (12, 1), (16, 2), (24, 1)], [(6, 2), (12, 1), (16, 2), (24, 1), (68, 1)], [], [(6, 2), (8, 2), (11, 1), (12, 1), (13, 1), (16, 1), (24, 1), (57, 2), (68, 1), (172, 1)], [(6, 2), (8, 2), (11, 1), (12, 1), (13, 1), (16, 1), (24, 1), (57, 2), (68, 1), (233, 1)], [], [], [(0, 2), (1, 1), (4, 2), (5, 1), (11, 2), (12, 1), (16, 2), (24, 1), (58, 1), (68, 2), (115, 2), (120, 1), (127, 2), (131, 1), (293, 2)], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 2), (11, 2), (12, 2), (16, 2), (24, 1), (58, 1), (68, 2), (115, 2), (120, 1), (127, 2), (131, 1), (293, 2)], [], [], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 1), (11, 1), (12, 1), (16, 2), (24, 1), (58, 2), (63, 1), (115, 1), (120, 2), (127, 1), (131, 2), (293, 1)], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 2), (12, 1), (16, 2), (24, 1), (58, 2), (68, 1), (115, 1), (120, 2), (127, 1), (131, 2), (293, 1)], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 1), (8, 1), (12, 1), (16, 2), (24, 1), (58, 2), (68, 1), (115, 1), (120, 2), (127, 1), (131, 2), (293, 1)], [], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 1), (11, 1), (12, 1), (16, 2), (24, 1), (58, 2), (68, 1), (115, 1), (120, 2), (127, 1), (131, 2), (293, 1)], [], [], [(1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 2), (8, 2), (12, 2), (13, 1), (58, 1), (63, 2), (115, 2), (120, 2), (127, 2), (131, 1), (293, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (8, 2), (12, 2), (13, 1), (58, 1), (63, 2), (115, 2), (120, 2), (127, 2), (131, 1), (293, 1)], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (8, 1), (11, 2), (13, 2), (16, 1), (24, 2), (63, 1), (68, 2), (120, 1), (121, 1), (293, 2)], [], [(1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (6, 2), (8, 1), (13, 2), (16, 1), (24, 2), (63, 1), (68, 2), (115, 1), (120, 1), (127, 1), (131, 2), (293, 2)], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (6, 2), (8, 1), (11, 2), (13, 2), (16, 1), (24, 2), (58, 2), (63, 1), (115, 1), (120, 1), (127, 1), (131, 2), (293, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (11, 2), (12, 1), (13, 1), (16, 1), (24, 2), (58, 2), (63, 1), (115, 1), (120, 1), (127, 1), (131, 2), (293, 2)], [(0, 2), (2, 2), (3, 1), (5, 2), (8, 1), (12, 1), (13, 2), (15, 1), (16, 2), (24, 1), (58, 1), (63, 2), (115, 2), (120, 2), (127, 2), (131, 1), (293, 1)], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (5, 1), (6, 1), (8, 1), (12, 1), (13, 1), (16, 1), (21, 1), (24, 2), (58, 2), (63, 1), (115, 1), (120, 1), (127, 1), (131, 2), (293, 2)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (12, 2), (13, 1), (58, 1), (63, 1), (68, 1), (115, 2), (127, 2), (131, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (11, 1), (12, 2), (13, 1), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (12, 2), (13, 1), (58, 1), (63, 2), (115, 2), (127, 1), (131, 2)], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (6, 1), (8, 1), (12, 1), (13, 2), (58, 2), (63, 1), (115, 1), (120, 1), (127, 1), (131, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (12, 2), (16, 1), (57, 1), (58, 1), (63, 1), (115, 2), (127, 2), (131, 1), (172, 2), (174, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (12, 2), (16, 1), (57, 1), (58, 1), (63, 1), (115, 2), (127, 2), (131, 1), (233, 2), (236, 1)], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (11, 2), (13, 2), (16, 1), (24, 2), (58, 2), (63, 2), (68, 2), (115, 1), (127, 1), (131, 2)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (11, 2), (12, 1), (13, 1), (16, 1), (24, 2), (58, 2), (63, 2), (68, 2), (115, 1), (127, 1), (131, 2)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (12, 1), (13, 1), (16, 1), (22, 1), (24, 2), (58, 2), (63, 2), (68, 2), (115, 1), (127, 1), (131, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (8, 1), (11, 1), (12, 2), (13, 2), (16, 2), (24, 1), (58, 1), (63, 1), (66, 1), (115, 2), (127, 2), (131, 1)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (11, 2), (12, 1), (13, 1), (16, 1), (24, 2), (58, 1), (63, 1), (80, 1), (115, 1), (127, 1), (131, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 2), (8, 2), (12, 2), (13, 1), (16, 2), (24, 1), (58, 1), (63, 2), (115, 2), (120, 2), (127, 2), (130, 1), (131, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (8, 1), (12, 1), (13, 2), (16, 2), (24, 1), (58, 2), (63, 1), (115, 1), (127, 2), (131, 2)], [], [], [(1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 2), (11, 1), (12, 1), (16, 2), (24, 1), (63, 2), (68, 1), (120, 2), (121, 2), (293, 1), (314, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 1), (11, 1), (13, 2), (16, 1), (24, 2), (57, 2), (58, 1), (63, 2), (68, 1), (115, 2), (120, 2), (127, 2), (131, 1), (157, 1), (293, 1)], [(2, 1), (3, 2), (5, 2), (8, 2), (11, 1), (13, 1), (16, 1), (24, 2), (63, 2), (68, 1), (120, 1), (293, 1), (392, 1)], [], [], [(0, 2), (1, 1), (4, 1), (5, 1), (6, 1), (16, 1), (24, 2), (58, 1), (63, 2), (115, 2), (120, 2), (127, 2), (130, 2), (131, 1), (293, 2), (470, 1)], [], [], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 1), (8, 2), (12, 2), (13, 1), (57, 2), (58, 1), (114, 1), (115, 2), (120, 1), (127, 2), (131, 1), (293, 2)], [], [], [], [(8, 1), (13, 2), (16, 1), (24, 2), (57, 1), (68, 2)], [], [], [(18, 1), (24, 2)], [], [], [(6, 1), (12, 2), (68, 2), (73, 1)], [], [], [], [(6, 1), (11, 2), (12, 2), (16, 1)], [], [], [], [], [(6, 1), (8, 2), (12, 2), (13, 1)], [], [], []] + +def comb47 : List (List (Nat × Nat)) := [[(3, 2), (4, 1), (6, 1), (8, 2), (14, 1), (16, 2), (24, 1)], [(3, 2), (4, 1), (8, 2), (14, 1), (16, 2), (24, 1), (66, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (18, 1), (19, 2), (24, 1), (57, 2), (66, 1), (233, 1)], [], [], [(0, 2), (2, 1), (6, 2), (7, 2), (8, 1), (14, 2), (16, 1), (18, 2), (19, 1), (24, 1), (57, 1), (66, 2), (172, 2)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (19, 1), (24, 1), (57, 1), (66, 2), (172, 2)], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (14, 2), (16, 1), (19, 2), (24, 1), (57, 2), (77, 1), (172, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (172, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (14, 2), (16, 1), (19, 2), (20, 1), (24, 1), (57, 2), (66, 1), (172, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (7, 1), (8, 1), (18, 1), (19, 2), (24, 1), (57, 2), (66, 1), (172, 1)], [(3, 2), (4, 1), (6, 2), (8, 2), (14, 1), (16, 2), (24, 2), (57, 1), (66, 2), (172, 2)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (18, 1), (19, 2), (24, 1), (57, 2), (66, 1), (172, 1)], [], [], [], [(0, 2), (1, 2), (2, 1), (6, 2), (7, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 2), (57, 2), (60, 2), (63, 2), (127, 1), (172, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (18, 2), (19, 1), (57, 2), (60, 2), (63, 2), (127, 1), (172, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (60, 2), (63, 1), (66, 2), (121, 1), (127, 1), (172, 2)], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (60, 2), (63, 1), (66, 2), (127, 2), (172, 2)], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 2), (7, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (60, 1), (63, 1), (127, 2), (172, 2)], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (60, 1), (63, 1), (127, 2), (172, 2)], [], [], [(0, 1), (1, 2), (2, 2), (6, 1), (7, 1), (8, 2), (14, 1), (16, 2), (18, 1), (19, 2), (60, 1), (63, 1), (66, 1), (127, 2)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (14, 2), (16, 1), (18, 2), (19, 1), (60, 1), (63, 1), (66, 1), (127, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (6, 2), (7, 2), (8, 1), (14, 2), (16, 1), (18, 2), (19, 1), (58, 1), (60, 1), (63, 1), (127, 2)], [], [(0, 1), (1, 2), (2, 2), (6, 2), (8, 2), (14, 1), (16, 2), (18, 1), (19, 2), (60, 1), (63, 2), (117, 1), (127, 1)], [], [(0, 1), (1, 2), (2, 2), (4, 2), (6, 2), (7, 1), (8, 2), (14, 1), (16, 2), (18, 1), (19, 2), (60, 2), (63, 1), (120, 1), (127, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (14, 2), (16, 1), (18, 2), (19, 2), (20, 2), (60, 1), (63, 2), (127, 1), (174, 1)], [], [(0, 1), (1, 2), (2, 2), (4, 2), (6, 2), (7, 1), (8, 2), (14, 1), (16, 2), (18, 1), (19, 2), (60, 2), (63, 1), (127, 1), (181, 1)], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (18, 1), (19, 2), (24, 2), (60, 2), (63, 2), (66, 2), (127, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (18, 1), (19, 2), (24, 2), (60, 2), (63, 2), (66, 2), (127, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (18, 2), (19, 1), (24, 1), (60, 1), (63, 1), (66, 1), (127, 2)], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (14, 1), (16, 2), (17, 1), (18, 1), (19, 2), (24, 2), (60, 2), (63, 2), (66, 2), (127, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (18, 2), (19, 1), (24, 1), (60, 1), (63, 1), (65, 1), (127, 2)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (18, 1), (19, 2), (24, 2), (60, 1), (63, 1), (71, 1), (127, 1)], [], [(0, 2), (1, 1), (2, 1), (4, 1), (6, 1), (7, 2), (8, 1), (14, 2), (18, 2), (19, 1), (24, 1), (60, 1), (63, 2), (120, 2), (127, 2), (130, 1)], [], [(0, 2), (1, 1), (2, 1), (6, 2), (7, 2), (8, 1), (14, 2), (16, 1), (18, 1), (19, 1), (24, 1), (60, 2), (63, 1), (127, 1), (137, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (17, 2), (18, 2), (19, 1), (24, 1), (57, 2), (60, 1), (63, 2), (66, 1), (121, 2), (127, 2), (172, 1), (314, 1)], [], [], [(1, 2), (3, 1), (4, 2), (6, 2), (8, 1), (14, 2), (24, 2), (57, 1), (60, 2), (63, 2), (66, 1), (127, 1), (157, 1), (172, 1)], [], [(1, 2), (16, 2), (24, 2), (57, 1), (60, 2), (63, 2), (66, 1), (127, 1), (172, 1), (216, 1)], [], [(0, 2), (2, 2), (4, 2), (7, 2), (8, 2), (14, 1), (17, 2), (19, 1), (20, 2), (24, 2), (57, 1), (63, 2), (120, 1), (130, 2), (172, 2), (470, 1)], [], [], [(3, 1), (4, 2), (6, 2), (8, 1), (14, 2), (16, 1), (114, 1), (172, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (14, 1), (16, 2), (18, 2), (19, 1), (24, 2), (57, 1), (66, 2)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 1), (13, 1), (14, 1), (16, 2), (18, 2), (19, 1), (24, 2)], [], [], [], [(3, 1), (4, 2), (8, 1), (14, 2), (66, 2), (73, 1)], [], [], [], [(3, 1), (4, 2), (6, 2), (8, 1), (14, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb48 : List (List (Nat × Nat)) := [[(1, 2), (4, 1), (15, 1), (16, 2), (18, 1)], [(1, 2), (4, 1), (8, 2), (15, 1), (16, 2), (18, 1), (63, 1)], [], [(1, 1), (4, 2), (8, 2), (15, 2), (16, 1), (18, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [(8, 2), (18, 1), (57, 1), (63, 2), (233, 2)], [], [], [(1, 2), (4, 1), (8, 1), (15, 1), (16, 2), (18, 1), (24, 1), (57, 1), (63, 2), (233, 2)], [], [(1, 1), (3, 1), (4, 1), (6, 1), (8, 2), (12, 2), (15, 2), (16, 1), (18, 1), (57, 2), (77, 1), (233, 1)], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (8, 2), (15, 1), (16, 1), (18, 1), (20, 1), (57, 2), (63, 1), (233, 1)], [(1, 1), (4, 2), (6, 1), (8, 1), (15, 2), (16, 1), (18, 1), (57, 2), (63, 1), (233, 1)], [], [], [(1, 1), (4, 2), (8, 2), (15, 2), (16, 1), (18, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (6, 1), (8, 2), (12, 1), (15, 1), (16, 2), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (5, 1), (6, 1), (8, 2), (12, 1), (15, 1), (16, 2), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [(0, 1), (2, 2), (4, 1), (6, 1), (8, 1), (12, 1), (15, 1), (16, 2), (18, 2), (57, 1), (58, 2), (60, 2), (63, 2), (67, 2), (115, 1), (121, 1), (127, 1), (131, 2), (233, 2)], [(0, 2), (2, 1), (4, 1), (6, 2), (8, 2), (12, 2), (15, 1), (16, 2), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (115, 2), (127, 2), (131, 1), (233, 2)], [(0, 1), (2, 2), (3, 2), (4, 2), (6, 2), (8, 2), (12, 2), (15, 1), (16, 2), (18, 2), (57, 1), (58, 2), (60, 1), (63, 2), (115, 2), (127, 2), (131, 1), (233, 2)], [], [(0, 2), (2, 2), (3, 2), (4, 2), (6, 2), (8, 1), (12, 2), (15, 1), (16, 2), (18, 2), (57, 1), (58, 1), (60, 1), (115, 2), (127, 2), (131, 1), (233, 2)], [], [], [(0, 1), (2, 2), (4, 1), (6, 1), (8, 1), (9, 1), (12, 1), (15, 2), (16, 1), (18, 1), (57, 2), (58, 2), (60, 2), (115, 1), (127, 1), (131, 2), (233, 1)], [(0, 2), (2, 1), (3, 2), (4, 2), (6, 1), (8, 2), (15, 1), (16, 2), (18, 2), (57, 1), (58, 1), (60, 1), (115, 2), (127, 2), (131, 1), (233, 2)], [], [], [], [(0, 2), (1, 2), (2, 1), (6, 2), (12, 2), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [], [(0, 2), (1, 1), (2, 1), (4, 1), (6, 2), (12, 2), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [], [], [(0, 2), (1, 1), (2, 1), (4, 1), (6, 2), (8, 1), (9, 2), (12, 2), (58, 1), (60, 1), (64, 1), (115, 2), (127, 2), (131, 1)], [(0, 1), (1, 2), (2, 2), (6, 1), (8, 2), (12, 1), (58, 2), (60, 1), (115, 1), (117, 1), (127, 1), (131, 2)], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 2), (12, 1), (58, 1), (60, 2), (115, 2), (127, 1), (131, 2)], [], [], [(0, 1), (1, 1), (3, 2), (4, 1), (6, 1), (8, 2), (12, 1), (15, 1), (20, 2), (58, 2), (60, 1), (115, 1), (127, 1), (131, 2), (236, 1)], [(0, 2), (1, 2), (2, 1), (4, 2), (6, 2), (8, 1), (12, 2), (15, 2), (16, 1), (57, 1), (58, 1), (60, 1), (115, 2), (127, 2), (131, 1), (172, 2), (181, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 1), (6, 1), (12, 1), (15, 2), (16, 1), (18, 2), (58, 2), (60, 2), (63, 2), (115, 1), (127, 1), (131, 2)], [(0, 1), (2, 2), (4, 2), (6, 1), (12, 1), (15, 2), (16, 1), (18, 2), (58, 2), (60, 2), (63, 2), (115, 1), (127, 1), (131, 2)], [], [], [(0, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (8, 2), (10, 1), (12, 2), (15, 1), (16, 2), (18, 1), (58, 1), (60, 1), (63, 1), (115, 2), (127, 2), (131, 1)], [(0, 1), (1, 2), (2, 2), (4, 2), (6, 1), (12, 1), (16, 1), (18, 2), (58, 2), (60, 2), (63, 2), (115, 1), (127, 1), (131, 2)], [], [], [], [], [(0, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (12, 2), (15, 1), (16, 2), (18, 1), (58, 1), (60, 1), (67, 1), (115, 2), (127, 2), (131, 1)], [(0, 1), (2, 1), (4, 1), (5, 1), (9, 1), (12, 2), (15, 2), (16, 1), (18, 2), (58, 2), (60, 2), (64, 2), (73, 1), (74, 2), (115, 1), (127, 1), (131, 2)], [], [], [], [(0, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 2), (12, 1), (15, 1), (16, 2), (18, 1), (58, 2), (60, 1), (115, 1), (127, 2), (131, 2)], [(0, 2), (2, 2), (4, 1), (5, 2), (6, 1), (8, 2), (12, 1), (15, 1), (16, 2), (18, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [], [(0, 2), (2, 1), (4, 2), (6, 2), (8, 2), (12, 2), (15, 2), (16, 1), (18, 1), (57, 2), (58, 1), (60, 1), (63, 1), (67, 1), (115, 2), (121, 2), (127, 2), (131, 1), (233, 1), (314, 1)], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 1), (12, 1), (18, 2), (57, 1), (58, 2), (60, 2), (63, 1), (115, 1), (127, 1), (131, 2), (157, 1), (233, 1)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (6, 2), (15, 1), (16, 2), (18, 2), (57, 1), (58, 2), (60, 2), (63, 1), (115, 1), (127, 1), (131, 2), (233, 1), (274, 1)], [(1, 1), (4, 1), (5, 1), (8, 1), (15, 2), (16, 2), (18, 2), (20, 2), (57, 1), (67, 2), (233, 2), (470, 1)], [], [], [(1, 1), (4, 2), (6, 2), (8, 1), (15, 2), (16, 1), (114, 1), (233, 2)], [], [], [], [(1, 1), (4, 2), (8, 1), (15, 2), (16, 1), (18, 2), (57, 1), (63, 2)], [], [(1, 1), (4, 2), (13, 1), (15, 2), (16, 1), (18, 2)], [], [], [], [(2, 1), (5, 2), (6, 1), (12, 2), (63, 2), (74, 1)], [], [], [], [(1, 1), (4, 2), (15, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb49 : List (List (Nat × Nat)) := [[(3, 2), (4, 1), (6, 1), (8, 2), (13, 1), (15, 2), (18, 2), (20, 1), (24, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (9, 2), (13, 1), (15, 2), (18, 2), (20, 1), (24, 1), (66, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (9, 2), (13, 1), (15, 2), (18, 2), (20, 1), (24, 1), (57, 2), (66, 1), (114, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (8, 2), (9, 2), (13, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (66, 1), (233, 1)], [], [], [], [(0, 2), (2, 1), (6, 2), (8, 1), (9, 1), (13, 1), (24, 1), (57, 1), (66, 2), (172, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 1), (9, 1), (13, 1), (15, 2), (20, 1), (24, 1), (57, 1), (66, 2), (172, 2)], [], [(3, 2), (4, 1), (6, 1), (8, 2), (13, 1), (15, 2), (18, 1), (20, 1), (24, 1), (57, 2), (75, 1), (172, 1)], [], [(3, 1), (4, 2), (6, 1), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (63, 1), (172, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (9, 2), (13, 1), (15, 2), (18, 2), (20, 1), (24, 1), (57, 2), (66, 1), (172, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (9, 2), (13, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (66, 1), (172, 1)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 1), (9, 1), (13, 1), (15, 2), (18, 2), (20, 1), (24, 2), (57, 1), (66, 2), (172, 2)], [], [], [], [], [], [(6, 2), (9, 1), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (58, 2), (60, 2), (63, 1), (66, 2), (67, 1), (114, 1), (121, 2), (172, 1), (173, 1)], [(3, 2), (4, 1), (6, 2), (9, 1), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (58, 2), (60, 2), (63, 1), (66, 2), (67, 1), (114, 1), (121, 2), (172, 1), (173, 1)], [], [(3, 2), (4, 1), (6, 1), (8, 1), (9, 2), (24, 2), (58, 1), (60, 2), (63, 1), (66, 1), (67, 1), (114, 1), (121, 2), (172, 2), (173, 2)], [], [], [(1, 1), (3, 2), (4, 1), (8, 1), (9, 2), (24, 2), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 2), (121, 1), (172, 2), (173, 2)], [], [(3, 2), (4, 2), (8, 1), (9, 2), (24, 2), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 2), (121, 1), (172, 2), (173, 2)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (24, 2), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 2), (121, 1), (172, 2), (173, 2)], [(2, 2), (3, 2), (4, 1), (6, 2), (9, 1), (12, 1), (13, 2), (24, 1), (57, 1), (58, 2), (60, 2), (63, 1), (66, 2), (67, 1), (114, 1), (121, 2), (172, 1), (173, 1)], [], [], [], [], [(0, 1), (3, 2), (4, 1), (6, 1), (9, 1), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (58, 1), (60, 1), (63, 2), (66, 2), (67, 2), (114, 2), (121, 1), (173, 2)], [], [(6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (58, 1), (60, 2), (63, 2), (66, 1), (67, 2), (114, 2), (121, 1), (173, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (58, 2), (60, 1), (63, 2), (66, 1), (67, 2), (114, 2), (121, 1), (173, 2)], [], [(6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (18, 1), (20, 2), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 1), (117, 1), (121, 1), (173, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (18, 1), (20, 2), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 1), (115, 1), (121, 1), (173, 2)], [], [], [(2, 1), (5, 2), (6, 1), (9, 2), (13, 1), (15, 2), (18, 2), (20, 1), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 2), (121, 1), (173, 2), (233, 2), (236, 1)], [(4, 2), (6, 2), (8, 1), (9, 1), (13, 1), (15, 2), (18, 2), (20, 1), (57, 2), (58, 2), (60, 2), (66, 2), (67, 1), (114, 1), (121, 2), (173, 1), (181, 1)], [(3, 2), (4, 1), (6, 1), (8, 1), (9, 2), (24, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 1), (67, 1), (114, 1), (121, 2), (173, 1)], [], [], [(0, 2), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (9, 2), (24, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 1), (67, 1), (114, 1), (121, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 2), (6, 2), (9, 2), (10, 1), (24, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 1), (67, 1), (114, 1), (121, 2), (173, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (9, 1), (13, 2), (15, 1), (24, 1), (57, 1), (58, 1), (60, 1), (63, 2), (66, 2), (67, 2), (114, 2), (121, 1), (173, 2)], [], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 1), (9, 2), (24, 2), (57, 2), (58, 2), (60, 1), (63, 1), (66, 1), (67, 2), (114, 1), (121, 2), (173, 1)], [(3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (13, 2), (24, 1), (57, 1), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (73, 1), (114, 2), (121, 1), (173, 2)], [], [], [(3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (13, 2), (24, 1), (57, 2), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (114, 1), (121, 1), (130, 1), (173, 2)], [], [], [], [(3, 1), (4, 2), (6, 2), (8, 2), (9, 1), (24, 1), (58, 2), (60, 1), (63, 2), (66, 2), (67, 2), (114, 2), (121, 1), (172, 1), (173, 1), (314, 1)], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (15, 2), (18, 2), (20, 1), (24, 2), (57, 1), (58, 1), (60, 2), (63, 1), (67, 1), (114, 1), (121, 2), (172, 1), (173, 1), (392, 1)], [(0, 1), (1, 2), (2, 2), (8, 2), (13, 1), (15, 2), (18, 2), (20, 1), (24, 2), (58, 2), (60, 2), (63, 1), (67, 1), (114, 1), (121, 2), (172, 1), (173, 1), (216, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (15, 1), (18, 2), (20, 2), (24, 2), (60, 1), (66, 1), (67, 2), (75, 2), (114, 1), (130, 2), (172, 2), (470, 1)], [], [], [], [(0, 1), (5, 2), (57, 1), (58, 2), (172, 2), (293, 1)], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (9, 1), (13, 2), (15, 1), (18, 1), (20, 2), (24, 2), (57, 1), (66, 2)], [(3, 1), (4, 2), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (24, 2)], [], [], [], [], [], [(3, 1), (4, 2), (66, 2), (68, 1)], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (11, 1)], [], [], [], [], [], [], []] + +def comb50 : List (List (Nat × Nat)) := [[(0, 1), (1, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (18, 1), (19, 2)], [(0, 1), (1, 2), (4, 1), (6, 2), (7, 1), (9, 2), (18, 1), (19, 2), (63, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (6, 1), (7, 1), (8, 1), (9, 1), (18, 1), (19, 2), (57, 2), (63, 1), (114, 1)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (18, 1), (19, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [], [(0, 2), (2, 1), (3, 2), (6, 2), (8, 2), (9, 1), (12, 1), (18, 1), (57, 1), (63, 2), (233, 2)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (18, 1), (19, 2), (24, 1), (57, 1), (63, 2), (233, 2)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (8, 1), (9, 1), (19, 2), (57, 2), (75, 1), (233, 1)], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (9, 1), (18, 1), (19, 2), (57, 2), (63, 1), (233, 1)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (18, 1), (19, 1), (57, 2), (63, 1), (233, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 1), (9, 2), (18, 1), (19, 1), (57, 2), (63, 1), (233, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (18, 2), (19, 2), (57, 1), (63, 2), (233, 2)], [], [], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 1), (7, 2), (19, 1), (57, 1), (64, 2), (114, 1), (121, 2), (233, 1), (234, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 2), (19, 1), (57, 1), (64, 2), (114, 1), (121, 2), (233, 1), (234, 1)], [(2, 2), (3, 1), (5, 1), (6, 2), (8, 2), (9, 2), (18, 2), (63, 2), (64, 1), (114, 1), (121, 2), (233, 2), (234, 2)], [], [(2, 1), (3, 2), (5, 2), (6, 1), (9, 1), (18, 2), (57, 2), (58, 1), (63, 2), (64, 1), (114, 2), (121, 1), (233, 2), (234, 2)], [(1, 1), (2, 1), (3, 2), (4, 2), (5, 2), (6, 1), (8, 2), (9, 2), (18, 2), (57, 2), (64, 1), (114, 2), (121, 1), (233, 2), (234, 2)], [(0, 1), (2, 1), (3, 2), (5, 2), (6, 1), (8, 2), (9, 1), (18, 2), (57, 2), (64, 1), (114, 2), (121, 1), (233, 2), (234, 2)], [], [], [], [], [(0, 2), (5, 1), (9, 2), (12, 2), (14, 1), (18, 1), (57, 1), (64, 2), (114, 1), (121, 2), (233, 1), (234, 1)], [], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (9, 1), (19, 1), (57, 1), (63, 1), (64, 1), (114, 2), (121, 1), (234, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (5, 2), (6, 2), (7, 2), (8, 1), (9, 1), (19, 1), (57, 1), (60, 1), (64, 1), (114, 2), (121, 1), (234, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (8, 1), (19, 1), (57, 1), (64, 2), (114, 2), (121, 1), (234, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 2), (19, 1), (57, 2), (64, 1), (114, 1), (117, 1), (121, 1), (234, 2)], [], [(1, 1), (4, 2), (5, 2), (7, 2), (9, 1), (19, 1), (57, 2), (64, 1), (114, 1), (120, 1), (121, 1), (234, 2)], [(0, 2), (1, 2), (5, 2), (7, 1), (19, 2), (57, 2), (64, 1), (114, 2), (121, 1), (172, 2), (174, 1), (234, 2)], [], [(0, 2), (1, 2), (5, 2), (7, 1), (19, 2), (57, 2), (64, 1), (114, 2), (121, 1), (172, 2), (181, 1), (234, 2)], [(0, 1), (2, 1), (3, 2), (5, 1), (6, 2), (8, 2), (9, 1), (18, 2), (57, 2), (63, 2), (64, 2), (114, 1), (121, 2), (234, 1)], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 2), (18, 2), (57, 2), (63, 2), (64, 2), (114, 1), (121, 2), (234, 1)], [], [(0, 2), (1, 2), (4, 1), (5, 1), (6, 1), (7, 1), (9, 2), (18, 2), (57, 2), (63, 2), (64, 2), (114, 1), (121, 2), (234, 1)], [], [], [(0, 2), (5, 1), (6, 2), (12, 2), (17, 1), (18, 1), (57, 1), (63, 1), (64, 1), (114, 2), (121, 1), (234, 2)], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 2), (18, 2), (57, 2), (60, 2), (63, 2), (64, 2), (65, 1), (114, 1), (121, 2), (234, 1)], [], [], [(0, 2), (5, 1), (6, 2), (8, 1), (12, 2), (18, 1), (57, 1), (64, 1), (71, 1), (114, 2), (121, 1), (234, 2)], [], [], [(0, 1), (2, 1), (3, 2), (5, 1), (9, 1), (12, 2), (18, 1), (57, 2), (64, 1), (114, 1), (121, 1), (127, 1), (234, 2)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 1), (9, 2), (12, 1), (17, 2), (18, 1), (63, 1), (64, 2), (114, 2), (121, 1), (233, 1), (234, 1), (314, 1)], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (12, 2), (18, 2), (19, 2), (63, 1), (64, 2), (114, 2), (120, 2), (121, 2), (233, 1), (234, 1), (392, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 1), (8, 1), (9, 2), (18, 2), (19, 2), (63, 1), (64, 2), (114, 1), (121, 2), (233, 1), (234, 1), (274, 1)], [(0, 1), (1, 1), (4, 1), (5, 1), (7, 2), (9, 2), (12, 1), (17, 2), (19, 1), (57, 1), (75, 2), (233, 2), (470, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (7, 2), (9, 2), (114, 1), (120, 2), (233, 2), (293, 1)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (9, 2), (18, 2), (19, 1), (57, 1), (63, 2)], [(0, 2), (1, 1), (4, 2), (6, 1), (7, 2), (9, 1), (18, 2), (19, 1)], [], [], [], [], [], [(4, 2), (9, 1), (60, 1), (64, 2), (65, 2), (68, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1)], [], [], [], [], [], [], []] + +def comb51 : List (List (Nat × Nat)) := [[(0, 2), (2, 1), (3, 2), (9, 1), (13, 1)], [(0, 2), (2, 1), (3, 2), (8, 2), (9, 1), (13, 1), (63, 1)], [(6, 2), (13, 1), (57, 2), (63, 1), (114, 1)], [], [], [], [], [], [], [(0, 1), (2, 2), (3, 1), (8, 1), (9, 2), (13, 1), (18, 1), (57, 1), (63, 2), (233, 2)], [(0, 1), (2, 2), (3, 1), (8, 1), (9, 2), (13, 1), (24, 1), (57, 1), (63, 2), (233, 2)], [(13, 1), (18, 2), (57, 2), (75, 1), (233, 1)], [(13, 1), (18, 2), (57, 2), (77, 1), (233, 1)], [], [(8, 2), (13, 1), (57, 2), (63, 1), (233, 1)], [(8, 2), (13, 1), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [], [], [(0, 1), (2, 2), (4, 1), (8, 1), (9, 2), (13, 2), (15, 2), (34, 1), (57, 1), (63, 2), (233, 2)], [], [], [], [], [(0, 2), (3, 2), (4, 2), (5, 1), (6, 2), (8, 1), (9, 2), (15, 2), (34, 1), (57, 1), (58, 2), (114, 1), (121, 2), (173, 1), (233, 1)], [(0, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 1), (15, 2), (34, 1), (57, 1), (58, 2), (114, 1), (121, 2), (173, 1), (233, 1)], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (13, 2), (15, 1), (34, 2), (58, 1), (63, 2), (114, 1), (121, 2), (173, 2), (233, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (13, 2), (15, 1), (34, 2), (57, 2), (58, 1), (60, 1), (63, 2), (114, 2), (121, 1), (173, 2), (233, 2)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (13, 2), (15, 1), (34, 2), (57, 2), (58, 1), (114, 2), (121, 1), (173, 2), (233, 2)], [], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (13, 2), (15, 2), (34, 2), (57, 2), (58, 1), (114, 2), (121, 1), (173, 2), (233, 2)], [], [], [], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 2), (13, 1), (15, 1), (18, 2), (21, 1), (34, 2), (57, 1), (58, 2), (114, 1), (121, 2), (173, 1), (233, 1)], [], [], [(0, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (15, 2), (34, 1), (57, 1), (58, 1), (63, 1), (114, 2), (121, 1), (173, 2)], [(0, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (9, 1), (15, 2), (34, 1), (57, 1), (58, 1), (63, 1), (114, 2), (121, 1), (173, 2)], [], [(0, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (15, 2), (34, 1), (57, 1), (58, 2), (114, 2), (121, 1), (173, 2)], [(0, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (15, 2), (34, 1), (57, 1), (58, 1), (64, 1), (114, 2), (121, 1), (173, 2)], [], [(2, 1), (3, 1), (4, 1), (5, 2), (6, 2), (8, 1), (9, 1), (15, 2), (34, 1), (57, 2), (58, 1), (114, 1), (115, 1), (121, 1), (173, 2)], [(2, 1), (3, 1), (4, 1), (5, 2), (6, 2), (8, 1), (9, 1), (15, 2), (34, 1), (57, 2), (58, 1), (114, 1), (120, 1), (121, 1), (173, 2)], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (15, 2), (18, 1), (20, 2), (34, 1), (57, 2), (58, 2), (60, 2), (114, 1), (121, 2), (173, 1), (174, 1)], [(2, 2), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (15, 2), (18, 1), (20, 2), (34, 1), (57, 2), (58, 2), (60, 2), (114, 1), (121, 2), (173, 1), (236, 1)], [], [(2, 2), (3, 2), (4, 2), (5, 1), (6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (34, 2), (57, 2), (58, 2), (63, 2), (114, 1), (121, 2), (173, 1)], [(0, 2), (3, 2), (4, 2), (5, 1), (6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (34, 2), (57, 2), (58, 2), (63, 2), (114, 1), (121, 2), (173, 1)], [], [], [], [], [], [], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 1), (13, 1), (15, 1), (18, 2), (22, 1), (34, 2), (57, 1), (58, 1), (63, 1), (114, 2), (121, 1), (173, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (8, 1), (13, 2), (15, 2), (34, 2), (57, 2), (58, 2), (64, 2), (66, 1), (67, 2), (114, 1), (121, 2), (173, 1)], [], [], [], [], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 2), (13, 1), (15, 1), (18, 2), (34, 2), (57, 1), (58, 1), (80, 1), (114, 2), (121, 1), (173, 2)], [], [], [(0, 1), (2, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (13, 1), (15, 1), (18, 2), (34, 2), (57, 2), (58, 1), (114, 1), (121, 1), (137, 1), (173, 2)], [], [(2, 1), (3, 1), (4, 1), (5, 2), (6, 1), (8, 1), (9, 1), (13, 1), (15, 2), (34, 1), (58, 2), (63, 1), (114, 2), (121, 1), (173, 1), (233, 1), (314, 1)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (13, 2), (15, 2), (34, 1), (58, 2), (63, 1), (114, 1), (121, 2), (173, 1), (216, 1), (233, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (13, 2), (15, 2), (34, 1), (58, 2), (63, 1), (114, 1), (121, 2), (173, 1), (233, 1), (274, 1)], [(0, 2), (2, 1), (4, 2), (9, 1), (13, 2), (15, 1), (18, 2), (20, 2), (34, 2), (57, 1), (75, 2), (233, 2), (470, 1)], [], [], [], [], [(172, 1), (233, 2)], [], [(8, 1), (13, 2), (57, 1), (63, 2)], [(0, 1), (2, 2), (3, 1), (8, 1), (9, 2), (13, 2)], [], [], [], [], [], [], [(0, 1), (4, 1), (5, 2), (8, 1), (9, 2), (15, 2), (63, 2), (67, 1)], [], [], [], [(6, 1), (8, 2)], [], [], [(0, 1), (2, 2), (3, 1), (9, 2)], [], [], []] + +def comb52 : List (List (Nat × Nat)) := [[], [], [], [(1, 2), (2, 2), (4, 1), (7, 1), (12, 2), (14, 2), (15, 1), (16, 1), (17, 1), (19, 2), (20, 1), (57, 2), (63, 1), (71, 2), (172, 1)], [(1, 2), (2, 1), (3, 1), (4, 1), (7, 1), (12, 2), (14, 2), (15, 1), (16, 1), (17, 1), (19, 2), (20, 1), (57, 2), (63, 1), (71, 2), (233, 1)], [], [], [], [(2, 2), (3, 1), (6, 2), (13, 1), (57, 2), (63, 1), (114, 1)], [(1, 2), (2, 2), (4, 1), (6, 2), (7, 1), (12, 2), (14, 2), (15, 1), (16, 1), (17, 1), (18, 1), (19, 2), (20, 1), (57, 2), (63, 1), (71, 2), (114, 1)], [(1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (12, 2), (14, 2), (15, 1), (16, 1), (17, 1), (19, 2), (20, 1), (24, 1), (57, 2), (63, 1), (71, 2), (114, 1)], [(1, 1), (2, 2), (3, 2), (4, 2), (6, 1), (7, 2), (12, 1), (14, 1), (15, 2), (16, 2), (17, 2), (18, 2), (19, 1), (20, 2), (57, 1), (63, 1), (71, 1), (75, 1), (114, 2)], [], [], [(1, 1), (2, 2), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (12, 1), (14, 1), (15, 2), (16, 2), (17, 2), (19, 1), (20, 2), (57, 1), (63, 2), (71, 1), (114, 2)], [], [], [], [], [(2, 2), (3, 1), (6, 2), (8, 1), (57, 2), (63, 1), (114, 1)], [(2, 1), (3, 2), (6, 2), (8, 1), (57, 2), (63, 1), (114, 1)], [(2, 2), (3, 1), (4, 1), (6, 2), (8, 1), (57, 2), (60, 2), (63, 1), (114, 1)], [], [], [], [(1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (13, 2), (14, 2), (15, 1), (16, 1), (18, 1), (19, 2), (57, 1), (60, 2), (63, 2), (114, 2)], [(1, 1), (6, 1), (7, 2), (8, 2), (13, 1), (15, 2), (18, 2), (19, 1), (57, 1), (60, 2), (63, 2), (114, 2)], [(1, 1), (6, 1), (7, 2), (8, 2), (12, 2), (13, 1), (14, 1), (15, 2), (16, 2), (17, 1), (18, 2), (19, 1), (57, 1), (60, 2), (63, 2), (114, 2)], [(1, 1), (3, 2), (6, 2), (7, 2), (12, 1), (13, 2), (15, 1), (18, 2), (19, 1), (57, 2), (60, 2), (63, 1), (66, 1), (67, 2), (72, 2), (114, 1), (121, 1)], [], [], [(1, 2), (2, 1), (3, 2), (6, 2), (7, 2), (13, 2), (15, 1), (18, 2), (19, 1), (57, 2), (60, 1), (63, 1), (114, 1)], [], [], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (13, 1), (14, 2), (15, 1), (16, 1), (18, 1), (19, 2), (57, 1), (60, 2), (63, 2), (114, 2)], [(1, 2), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (13, 1), (15, 1), (16, 1), (18, 1), (19, 2), (57, 1), (60, 2), (63, 2), (114, 2)], [(1, 2), (3, 1), (4, 2), (6, 1), (7, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 2), (17, 2), (18, 1), (19, 2), (20, 2), (21, 1), (57, 1), (60, 1), (63, 2), (71, 1), (114, 2)], [(1, 2), (2, 1), (3, 2), (7, 1), (8, 1), (12, 1), (13, 1), (14, 2), (15, 1), (16, 1), (17, 2), (18, 1), (19, 2), (60, 1), (71, 1)], [(1, 2), (2, 1), (3, 2), (7, 1), (8, 1), (13, 1), (15, 2), (18, 1), (19, 2), (60, 1)], [], [], [], [], [], [], [], [], [(1, 2), (3, 1), (4, 2), (7, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 2), (17, 2), (18, 2), (19, 2), (20, 2), (57, 1), (60, 1), (63, 2), (71, 1), (172, 2), (174, 1)], [(1, 2), (2, 1), (5, 2), (7, 1), (13, 1), (14, 2), (15, 1), (16, 1), (18, 2), (19, 2), (20, 2), (57, 1), (60, 1), (63, 2), (71, 1), (233, 2), (236, 1)], [(1, 2), (3, 1), (4, 2), (7, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 2), (17, 2), (18, 2), (19, 2), (20, 2), (57, 1), (60, 1), (63, 2), (71, 1), (172, 2), (181, 1)], [], [(1, 1), (2, 2), (3, 1), (4, 1), (7, 2), (13, 1), (14, 1), (15, 2), (16, 2), (18, 2), (19, 1), (60, 1)], [(1, 2), (2, 1), (3, 2), (7, 1), (13, 2), (15, 1), (18, 1), (19, 2), (60, 2)], [(1, 2), (2, 1), (3, 2), (4, 2), (5, 1), (7, 1), (12, 1), (13, 2), (14, 2), (15, 1), (16, 1), (17, 2), (18, 1), (19, 2), (60, 2)], [(1, 1), (2, 1), (3, 2), (7, 2), (12, 2), (13, 2), (14, 1), (15, 2), (16, 2), (17, 1), (18, 1), (19, 2), (60, 2), (71, 2)], [(1, 1), (2, 1), (3, 2), (7, 1), (10, 1), (13, 2), (15, 2), (18, 1), (19, 2), (60, 2), (71, 2)], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 1), (7, 2), (12, 2), (13, 1), (14, 1), (15, 2), (16, 2), (18, 2), (19, 1), (60, 1), (72, 1)], [(1, 2), (2, 1), (3, 2), (7, 1), (13, 2), (15, 1), (18, 1), (19, 2), (60, 1), (65, 1)], [(1, 2), (2, 2), (3, 2), (7, 1), (13, 2), (14, 2), (15, 1), (16, 1), (17, 2), (18, 1), (19, 2), (60, 1), (66, 2), (67, 1), (72, 1)], [], [], [], [], [], [], [], [], [(1, 1), (4, 1), (6, 1), (7, 2), (8, 1), (13, 2), (15, 2), (16, 2), (18, 2), (19, 1), (44, 1), (57, 2), (60, 1), (63, 1), (114, 1)], [(1, 1), (4, 1), (6, 2), (7, 2), (12, 2), (13, 2), (14, 1), (15, 2), (16, 2), (18, 2), (19, 1), (57, 1), (60, 1), (63, 2), (99, 1), (114, 1)], [(1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (8, 1), (13, 2), (15, 2), (16, 2), (18, 2), (19, 1), (57, 1), (60, 1), (63, 2), (114, 1), (157, 1)], [], [], [], [], [(2, 1), (3, 2), (6, 1), (57, 1), (63, 2), (114, 2)], [(2, 1), (3, 2), (6, 1), (8, 2), (57, 1), (114, 2)], [], [], [], [], [(2, 1), (3, 2), (57, 1), (63, 2)], [], [], [], [], [], [], [(4, 2), (60, 1), (65, 2), (68, 1)], [(3, 2), (12, 1), (66, 1), (72, 2)], [], [], [(1, 1), (4, 2), (7, 2), (11, 1), (12, 1), (14, 2), (15, 2), (16, 1), (17, 2), (71, 1)], [(2, 1), (3, 2), (6, 1), (8, 2)], [], [], [], [], [], []] + +def comb53 : List (List (Nat × Nat)) := [[], [], [(6, 2), (13, 1), (57, 2), (63, 1), (114, 1)], [(1, 2), (4, 1), (8, 2), (13, 1), (15, 1), (16, 2), (57, 2), (63, 1), (172, 1)], [(1, 2), (4, 1), (8, 2), (13, 1), (15, 1), (16, 2), (57, 2), (63, 1), (233, 1)], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 2), (10, 1), (15, 1), (16, 2), (18, 1), (19, 2), (57, 2), (63, 1), (114, 1), (120, 2), (293, 1)], [], [(0, 1), (1, 1), (4, 2), (5, 2), (6, 2), (8, 2), (10, 1), (15, 2), (16, 1), (18, 2), (19, 2), (57, 2), (63, 1), (114, 1), (120, 2), (293, 1)], [(0, 1), (1, 1), (4, 2), (5, 2), (6, 2), (8, 2), (10, 1), (15, 2), (16, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (114, 1), (120, 2), (293, 1)], [], [(1, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 2), (10, 2), (11, 1), (13, 2), (15, 2), (16, 1), (18, 2), (57, 1), (63, 2), (65, 2), (77, 1), (114, 2), (120, 1), (293, 2)], [], [], [(1, 2), (4, 1), (5, 1), (6, 1), (8, 1), (9, 2), (10, 2), (11, 1), (13, 2), (15, 1), (16, 1), (18, 2), (20, 1), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 2), (8, 2), (10, 1), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2), (57, 2), (63, 1), (114, 1), (120, 2), (293, 1)], [], [], [(0, 1), (1, 1), (4, 2), (5, 2), (6, 2), (8, 2), (10, 1), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2), (57, 2), (63, 1), (114, 1), (120, 2), (293, 1)], [], [], [(0, 1), (1, 2), (4, 1), (5, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (13, 2), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [], [(0, 1), (1, 1), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (10, 2), (11, 2), (13, 2), (15, 1), (16, 2), (18, 1), (19, 2), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [(0, 1), (1, 1), (4, 2), (5, 1), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (16, 2), (18, 1), (19, 2), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [(0, 2), (1, 2), (4, 1), (5, 2), (7, 2), (8, 1), (9, 2), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1), (120, 2), (121, 1), (293, 1)], [(1, 1), (4, 1), (5, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 2), (57, 2), (60, 1), (63, 1), (65, 2), (114, 1), (120, 2), (293, 1)], [], [], [], [], [], [(1, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [], [], [(0, 1), (1, 1), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (10, 2), (11, 2), (19, 2), (21, 1), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [(0, 1), (7, 2), (8, 1), (9, 2), (11, 1), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2)], [], [], [], [(0, 1), (7, 1), (8, 1), (9, 2), (11, 1), (13, 1), (15, 1), (16, 2), (18, 1), (19, 2), (65, 1)], [], [], [], [(0, 1), (1, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (16, 2), (18, 1), (19, 2), (57, 1), (63, 2), (114, 2), (115, 1)], [(0, 1), (1, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (16, 2), (18, 1), (19, 2), (57, 1), (63, 2), (114, 2), (120, 1)], [], [], [(0, 2), (4, 2), (7, 2), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (16, 2), (18, 2), (19, 1), (57, 1), (63, 2), (172, 2), (181, 1)], [(0, 2), (1, 2), (4, 1), (7, 2), (8, 1), (9, 2), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1)], [], [(0, 1), (1, 1), (7, 1), (8, 2), (9, 2), (11, 1), (15, 1), (16, 2), (18, 1), (19, 2)], [(0, 1), (1, 1), (4, 2), (5, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (15, 1), (16, 2), (18, 1), (19, 2)], [], [], [(0, 1), (7, 1), (8, 2), (9, 2), (11, 1), (15, 2), (16, 2), (18, 1), (19, 2)], [(0, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (15, 2), (16, 1), (17, 1), (18, 1), (19, 2)], [], [(0, 2), (1, 2), (4, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1), (65, 1), (66, 1), (67, 2)], [], [], [(0, 1), (1, 1), (8, 2), (9, 2), (11, 1), (15, 1), (16, 2), (18, 1), (19, 2), (60, 2), (65, 1), (71, 1), (73, 1), (74, 2)], [(0, 1), (1, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (15, 1), (16, 2), (18, 1), (19, 2), (60, 2), (65, 1), (71, 1)], [], [], [], [(0, 1), (1, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (19, 2), (57, 1), (63, 2), (114, 2), (137, 1)], [], [], [(0, 2), (1, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 2), (10, 1), (11, 1), (13, 1), (44, 1), (57, 2), (63, 1), (114, 1), (120, 2), (293, 1)], [(1, 1), (4, 2), (5, 2), (6, 2), (7, 2), (9, 1), (10, 1), (11, 1), (13, 1), (57, 1), (63, 2), (99, 1), (114, 1), (120, 2), (293, 1)], [], [(1, 1), (4, 2), (5, 2), (7, 2), (8, 1), (9, 2), (10, 1), (11, 1), (13, 1), (57, 1), (63, 2), (114, 2), (120, 1), (293, 1), (392, 1)], [], [], [], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 1), (8, 1), (10, 2), (15, 2), (16, 1), (18, 2), (19, 1), (57, 1), (63, 2), (114, 2), (120, 1), (293, 2)], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 1), (10, 2), (15, 2), (16, 1), (18, 2), (19, 1), (57, 1), (114, 2), (120, 1), (293, 2)], [], [], [], [], [(8, 1), (13, 2), (57, 1), (63, 2)], [], [], [], [], [], [(4, 2), (7, 1), (60, 1), (65, 2), (71, 2), (74, 1)], [], [(7, 1), (10, 2), (65, 2), (67, 1)], [], [(1, 1), (4, 2), (15, 2), (16, 1)], [], [(6, 1), (8, 2)], [], [], [], [], [], []] + +def comb54 : List (List (Nat × Nat)) := [[], [], [(0, 1), (6, 2), (8, 2), (9, 2), (10, 1), (11, 1), (13, 1), (17, 2), (18, 1), (19, 2), (57, 2), (63, 1), (114, 1)], [], [(0, 2), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (18, 1), (19, 1), (57, 2), (63, 1), (233, 1)], [], [], [(0, 1), (8, 2), (9, 2), (10, 1), (11, 1), (13, 1), (17, 2), (19, 2), (57, 2), (63, 1), (172, 1)], [(0, 1), (8, 1), (9, 2), (10, 1), (11, 1), (13, 2), (17, 2), (19, 2), (57, 2), (63, 1), (172, 1)], [], [(0, 2), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (19, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [], [], [(0, 1), (6, 1), (8, 2), (9, 2), (10, 1), (11, 1), (13, 1), (17, 2), (18, 2), (19, 2), (57, 1), (63, 2), (172, 2)], [], [], [], [(0, 2), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (18, 1), (19, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [(2, 1), (3, 2), (5, 1), (6, 2), (7, 1), (8, 2), (10, 1), (11, 1), (13, 2), (17, 1), (18, 2), (19, 1), (24, 1), (25, 2), (57, 1), (63, 2), (172, 2)], [(2, 2), (3, 2), (5, 1), (6, 2), (7, 2), (8, 1), (10, 1), (11, 1), (12, 2), (17, 1), (18, 2), (24, 1), (25, 2), (57, 1), (63, 2), (172, 2)], [], [(2, 1), (3, 2), (5, 2), (6, 2), (7, 1), (10, 2), (11, 2), (18, 2), (24, 2), (25, 1), (57, 1), (63, 2), (172, 2)], [(0, 2), (2, 2), (3, 1), (5, 1), (6, 2), (7, 2), (8, 1), (9, 1), (13, 2), (17, 1), (19, 1), (24, 1), (25, 2), (114, 2), (121, 1), (172, 1)], [], [(0, 2), (2, 2), (3, 1), (5, 1), (6, 2), (7, 1), (10, 1), (11, 1), (17, 1), (19, 1), (24, 1), (25, 2), (57, 2), (58, 1), (63, 1), (72, 2), (172, 1)], [], [(0, 2), (2, 2), (3, 1), (5, 2), (6, 2), (7, 1), (8, 2), (9, 1), (10, 1), (11, 1), (19, 1), (24, 2), (25, 1), (57, 2), (63, 1), (172, 1)], [], [(2, 2), (3, 1), (5, 1), (6, 2), (7, 2), (8, 1), (10, 1), (11, 1), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (24, 1), (25, 2), (57, 1), (63, 2), (172, 2)], [(2, 2), (3, 1), (5, 1), (6, 2), (7, 1), (10, 2), (11, 2), (24, 1), (25, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 1), (2, 2), (3, 1), (5, 1), (6, 2), (7, 2), (9, 2), (10, 2), (11, 2), (12, 2), (14, 1), (19, 2), (24, 1), (25, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (2, 2), (3, 1), (5, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (13, 2), (17, 1), (18, 1), (19, 1), (24, 1), (25, 2)], [], [(2, 2), (3, 1), (5, 1), (6, 1), (7, 2), (8, 1), (10, 1), (11, 1), (13, 2), (17, 1), (18, 1), (24, 1), (25, 2)], [], [], [(0, 2), (2, 2), (3, 1), (5, 2), (6, 1), (7, 2), (9, 1), (10, 1), (11, 1), (13, 2), (18, 1), (24, 2), (25, 1), (72, 1)], [], [(2, 2), (3, 1), (5, 1), (7, 1), (10, 2), (11, 1), (18, 2), (24, 1), (25, 2), (57, 1), (63, 2), (114, 2), (117, 1)], [], [(2, 2), (3, 1), (5, 1), (7, 1), (9, 2), (10, 2), (11, 2), (18, 2), (24, 1), (25, 2), (57, 1), (63, 2), (114, 2), (120, 1)], [], [(2, 2), (3, 1), (5, 1), (6, 2), (7, 1), (10, 2), (11, 2), (18, 2), (24, 2), (25, 1), (57, 1), (63, 2), (233, 2), (236, 1)], [], [(0, 2), (2, 1), (3, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 2), (13, 2), (17, 1), (19, 1), (24, 2), (25, 1)], [(0, 1), (2, 1), (3, 2), (5, 2), (6, 1), (7, 1), (8, 2), (9, 2), (12, 1), (13, 1), (17, 1), (19, 2), (24, 2), (25, 1)], [], [(0, 1), (2, 1), (3, 2), (5, 2), (6, 1), (7, 2), (9, 2), (10, 2), (11, 2), (13, 1), (17, 2), (19, 2), (24, 1), (25, 2)], [(0, 2), (2, 1), (3, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 1), (11, 1), (13, 2), (17, 1), (19, 1), (24, 2), (25, 1)], [], [(0, 2), (2, 1), (3, 2), (5, 2), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (13, 2), (14, 2), (16, 1), (19, 1), (24, 2), (25, 1)], [], [(0, 2), (2, 1), (3, 2), (5, 1), (6, 1), (7, 2), (9, 1), (10, 2), (13, 1), (17, 2), (19, 1), (22, 1), (24, 1), (25, 2)], [], [(0, 2), (2, 1), (3, 2), (5, 2), (6, 1), (7, 1), (9, 1), (10, 1), (11, 1), (12, 1), (14, 2), (15, 2), (16, 1), (19, 1), (24, 2), (25, 1), (65, 1)], [], [(0, 1), (2, 1), (3, 2), (6, 1), (7, 1), (9, 2), (10, 1), (11, 1), (12, 1), (13, 2), (14, 2), (19, 1), (72, 1), (73, 1), (74, 2)], [], [(0, 2), (2, 1), (3, 2), (5, 2), (6, 1), (7, 2), (8, 2), (9, 2), (10, 2), (13, 1), (17, 1), (19, 1), (24, 2), (25, 1), (58, 2), (72, 1), (80, 1)], [], [(0, 1), (2, 2), (3, 1), (5, 1), (6, 2), (7, 2), (9, 2), (10, 2), (11, 2), (17, 2), (19, 2), (24, 1), (25, 2), (57, 1), (63, 2), (114, 2), (127, 1)], [], [], [], [(2, 1), (3, 2), (5, 2), (7, 2), (8, 2), (10, 2), (11, 2), (12, 1), (13, 1), (14, 2), (17, 2), (18, 1), (19, 2), (24, 2), (25, 1), (44, 1), (57, 2), (63, 1), (172, 1)], [(0, 1), (2, 1), (3, 2), (5, 2), (6, 1), (7, 2), (8, 1), (9, 2), (10, 2), (11, 2), (13, 1), (17, 2), (18, 1), (19, 2), (24, 2), (25, 1), (57, 1), (63, 2), (99, 1), (172, 1)], [], [], [(0, 1), (2, 1), (3, 2), (5, 2), (6, 1), (7, 1), (9, 2), (12, 1), (13, 2), (14, 2), (17, 1), (18, 1), (19, 2), (24, 2), (25, 1), (57, 1), (63, 2), (172, 1), (216, 1)], [], [], [(0, 2), (8, 2), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (19, 1), (57, 1), (63, 2), (172, 2)], [(0, 2), (8, 1), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (19, 1), (57, 1), (172, 2)], [], [], [], [], [(0, 2), (8, 2), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (18, 2), (19, 1), (57, 1), (63, 2)], [], [], [], [], [], [(5, 2), (8, 2), (10, 2), (11, 2), (13, 2), (17, 1), (19, 1), (24, 2), (25, 1), (72, 2), (74, 1)], [(7, 1), (8, 1), (10, 2), (11, 2), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (65, 2), (68, 1)], [], [], [(0, 2), (8, 1), (9, 1), (10, 2), (11, 2), (13, 2), (17, 1), (19, 1)], [], [], [], [], [], [], [], []] + +def comb55 : List (List (Nat × Nat)) := [[], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (11, 1), (13, 1), (14, 1), (16, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (114, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (11, 2), (13, 2), (14, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (172, 1)], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (7, 1), (8, 1), (11, 1), (13, 1), (14, 1), (16, 1), (18, 1), (19, 2), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (7, 1), (11, 1), (13, 2), (14, 1), (16, 1), (18, 1), (19, 2), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (11, 2), (13, 2), (14, 1), (18, 2), (19, 2), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [], [(0, 1), (2, 2), (6, 1), (7, 1), (8, 1), (11, 1), (13, 1), (14, 1), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (63, 2), (64, 2), (66, 1), (233, 2)], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (7, 2), (8, 1), (11, 1), (13, 1), (14, 2), (18, 2), (19, 1), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (11, 2), (13, 2), (14, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (11, 2), (13, 2), (14, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (8, 1), (9, 1), (11, 1), (13, 2), (14, 2), (16, 2), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(1, 2), (3, 2), (4, 1), (6, 1), (9, 2), (11, 1), (14, 1), (16, 2), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(0, 1), (1, 1), (3, 1), (4, 2), (7, 1), (9, 1), (11, 2), (14, 2), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [(0, 2), (1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (13, 1), (14, 1), (15, 1), (18, 2), (19, 1), (64, 2), (66, 1), (67, 2), (114, 2), (121, 1), (233, 1)], [], [], [], [], [(1, 1), (3, 2), (4, 2), (6, 2), (8, 1), (9, 1), (11, 1), (14, 1), (16, 2), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (9, 2), (11, 1), (13, 2), (14, 2), (15, 1), (16, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [(1, 2), (2, 2), (3, 2), (4, 1), (9, 2), (11, 2), (12, 1), (14, 1), (16, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [], [], [(0, 1), (7, 2), (8, 2), (9, 2), (13, 2), (16, 1), (18, 1), (19, 2), (24, 1)], [], [], [(0, 1), (7, 1), (8, 2), (9, 2), (11, 1), (13, 2), (16, 1), (18, 1), (19, 2), (24, 1)], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 1), (13, 2), (14, 1), (18, 2), (19, 1), (24, 1), (66, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (11, 1), (14, 2), (16, 1), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (114, 2), (117, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (9, 1), (11, 2), (14, 2), (16, 1), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (114, 2), (115, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (11, 2), (14, 2), (16, 1), (18, 1), (19, 2), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2), (172, 2), (174, 1)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 2), (8, 2), (9, 2), (13, 2), (16, 1), (18, 2), (19, 1)], [(0, 2), (7, 2), (9, 1), (13, 1), (14, 1), (16, 1), (18, 2), (19, 1)], [(0, 1), (1, 1), (6, 1), (7, 1), (9, 2), (11, 2), (13, 1), (16, 2), (18, 1), (19, 2)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (9, 1), (10, 1), (11, 1), (13, 2), (16, 1), (18, 2), (19, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 2), (8, 2), (9, 1), (11, 1), (12, 2), (13, 2), (14, 1), (17, 1), (18, 2), (19, 1)], [(0, 2), (6, 1), (7, 1), (9, 1), (13, 1), (16, 2), (18, 1), (19, 1), (22, 1)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 1), (15, 2), (16, 1), (18, 2), (19, 1), (67, 1)], [], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 2), (9, 1), (11, 1), (13, 1), (14, 1), (64, 2), (66, 1), (71, 1)], [(1, 2), (3, 2), (4, 1), (7, 2), (9, 1), (13, 1), (14, 1), (16, 1), (18, 2), (64, 2), (66, 1), (80, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (11, 2), (14, 2), (57, 1), (63, 2), (64, 1), (66, 2), (114, 2), (130, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (8, 2), (9, 2), (11, 2), (13, 1), (14, 1), (16, 1), (24, 1), (44, 1), (57, 2), (63, 1), (64, 2), (66, 1), (233, 1)], [(0, 1), (2, 1), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (18, 1), (19, 2), (24, 1), (57, 1), (63, 2), (64, 1), (66, 2), (99, 1), (233, 1)], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (9, 1), (12, 2), (13, 2), (16, 2), (18, 1), (19, 2), (24, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 1), (274, 1)], [], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 2), (13, 2), (14, 2), (16, 2), (18, 2), (19, 1), (57, 1), (63, 2), (64, 1), (66, 2), (233, 2)], [(8, 1), (11, 2), (13, 2), (16, 1), (57, 1), (233, 2)], [], [], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 2), (13, 2), (14, 2), (16, 2), (18, 2), (19, 1), (24, 2), (57, 1), (63, 2), (64, 1), (66, 2)], [], [], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 1), (11, 2), (13, 2), (14, 2), (16, 1), (18, 2), (19, 1), (66, 2), (73, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 1), (7, 2), (9, 1), (11, 2), (14, 2), (16, 1), (18, 2), (19, 1), (66, 2), (68, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (8, 1), (11, 2), (13, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb56 : List (List (Nat × Nat)) := [[], [(1, 2), (2, 1), (3, 2), (4, 1), (8, 2), (12, 2), (14, 1), (15, 1), (16, 2), (18, 1), (63, 1)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (18, 1), (21, 1), (57, 2), (63, 1), (233, 1)], [], [(5, 1), (8, 2), (13, 1), (17, 2), (57, 2), (63, 1), (172, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (12, 2), (13, 1), (14, 1), (15, 1), (16, 2), (57, 2), (63, 1), (172, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (21, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (9, 1), (18, 1), (21, 2), (57, 1), (63, 1), (75, 1), (172, 2)], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (8, 2), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (18, 1), (20, 1), (57, 2), (63, 1), (172, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (8, 2), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (18, 1), (21, 1), (57, 2), (63, 1), (172, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (12, 2), (14, 1), (15, 1), (16, 2), (18, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (9, 2), (12, 1), (14, 2), (15, 2), (16, 1), (18, 1), (21, 1), (57, 2), (63, 1), (172, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 2), (9, 1), (14, 2), (15, 2), (16, 1), (17, 1), (18, 2), (21, 1), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (3, 1), (4, 2), (5, 1), (8, 1), (9, 1), (12, 1), (17, 2), (18, 2), (21, 1), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (8, 1), (9, 1), (12, 1), (17, 2), (18, 2), (21, 1), (57, 1), (63, 2), (172, 2)], [], [], [(1, 1), (5, 2), (9, 2), (14, 2), (15, 2), (16, 1), (17, 1), (21, 2), (57, 2), (58, 1), (172, 1)], [], [], [(1, 2), (2, 2), (3, 1), (5, 1), (6, 2), (8, 2), (12, 1), (13, 2), (14, 1), (15, 1), (16, 2), (17, 2), (21, 1), (57, 1), (63, 2), (172, 2)], [], [], [], [(1, 2), (5, 1), (8, 1), (13, 2), (14, 2), (15, 1), (16, 2), (17, 2), (21, 1), (57, 1), (63, 2), (172, 2)], [], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (12, 2), (13, 2), (17, 2), (18, 1), (21, 1)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (9, 2), (12, 2), (13, 2), (17, 2), (18, 1), (21, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 2), (12, 2), (17, 1), (18, 2), (21, 1), (60, 1), (63, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 2), (9, 2), (12, 2), (17, 1), (18, 2), (21, 2), (63, 2), (64, 1)], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (8, 2), (9, 2), (12, 1), (17, 2), (18, 1), (21, 2), (58, 2), (63, 1), (115, 1)], [], [], [(0, 2), (1, 2), (2, 1), (5, 1), (8, 1), (9, 1), (15, 1), (17, 2), (18, 2), (20, 2), (21, 1), (57, 1), (63, 2), (233, 2), (236, 1)], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (9, 1), (12, 2), (14, 2), (15, 2), (16, 1), (17, 2), (21, 1)], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (12, 2), (14, 2), (15, 2), (16, 1), (17, 2), (21, 2)], [], [], [(1, 2), (5, 1), (10, 1), (12, 1), (14, 1), (15, 1), (16, 2), (17, 1), (21, 1)], [(1, 1), (5, 2), (14, 1), (15, 2), (16, 2), (17, 1), (21, 2)], [], [(1, 2), (5, 1), (12, 1), (14, 1), (15, 1), (16, 2), (17, 1), (21, 1), (22, 1)], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (12, 2), (14, 2), (15, 2), (16, 1), (17, 2), (21, 2), (60, 2), (65, 1)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (9, 2), (12, 1), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (21, 2), (63, 2), (71, 1)], [], [(1, 1), (5, 2), (8, 2), (12, 2), (13, 1), (14, 1), (15, 2), (16, 1), (17, 2), (21, 2), (58, 2), (63, 1), (115, 1), (130, 1), (131, 2)], [], [(0, 1), (1, 1), (5, 1), (8, 2), (13, 1), (14, 1), (15, 1), (16, 2), (17, 1), (21, 2), (58, 2), (63, 1), (137, 1)], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (12, 2), (13, 1), (14, 2), (17, 1), (18, 1), (21, 2), (44, 1), (57, 2), (63, 1), (172, 1)], [], [(0, 1), (5, 2), (8, 1), (9, 2), (12, 2), (13, 1), (14, 2), (17, 1), (18, 1), (57, 1), (63, 2), (157, 1), (172, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (9, 2), (12, 1), (13, 1), (15, 1), (16, 2), (17, 1), (18, 1), (57, 1), (63, 2), (172, 1), (216, 1)], [], [], [(0, 2), (1, 1), (8, 1), (9, 1), (12, 1), (14, 2), (15, 2), (16, 1), (21, 2), (57, 1), (63, 2), (172, 2)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (12, 1), (14, 2), (15, 2), (16, 1), (114, 1), (172, 2)], [], [], [], [(0, 2), (1, 1), (8, 1), (9, 1), (12, 1), (14, 2), (15, 2), (16, 1), (18, 2), (21, 2), (57, 1), (63, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (8, 1), (12, 1), (14, 2), (15, 2), (16, 1), (18, 2)], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 1), (17, 2), (58, 1), (63, 2), (115, 2), (131, 1)], [], [(9, 1), (21, 2), (60, 1), (64, 2), (65, 2), (68, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (12, 1), (14, 2), (15, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb57 : List (List (Nat × Nat)) := [[], [(0, 1), (1, 2), (2, 2), (4, 1), (9, 2), (13, 2), (14, 1), (15, 1), (16, 2), (24, 1), (66, 1)], [], [(0, 1), (1, 1), (2, 2), (4, 2), (9, 2), (13, 2), (14, 1), (15, 2), (16, 1), (24, 1), (57, 2), (66, 1), (172, 1)], [], [], [(0, 1), (2, 2), (4, 1), (9, 2), (14, 1), (16, 2), (57, 2), (66, 1), (233, 1)], [], [(0, 1), (1, 2), (2, 2), (4, 1), (9, 2), (14, 1), (15, 1), (16, 2), (57, 2), (66, 1), (233, 1)], [(0, 1), (1, 1), (2, 2), (4, 2), (9, 2), (13, 2), (14, 1), (15, 2), (16, 1), (18, 1), (57, 2), (66, 1), (233, 1)], [], [(0, 1), (2, 2), (9, 2), (13, 2), (14, 1), (18, 2), (24, 2), (57, 1), (66, 1), (75, 1), (233, 2)], [], [(0, 1), (1, 2), (2, 2), (4, 1), (8, 2), (9, 2), (13, 2), (14, 1), (15, 1), (16, 2), (24, 2), (57, 1), (63, 1), (66, 1), (233, 2)], [], [(0, 1), (2, 1), (4, 1), (9, 2), (14, 1), (16, 2), (18, 2), (20, 1), (24, 1), (57, 2), (66, 1), (233, 1)], [(0, 1), (1, 1), (2, 2), (4, 2), (6, 1), (8, 2), (9, 2), (13, 2), (14, 1), (15, 2), (16, 1), (24, 1), (57, 2), (66, 1), (233, 1)], [], [], [(0, 1), (1, 1), (2, 2), (4, 2), (9, 2), (13, 2), (14, 1), (15, 2), (16, 1), (24, 1), (57, 2), (66, 1), (233, 1)], [], [], [], [(1, 1), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (11, 1), (13, 1), (14, 1), (15, 2), (16, 2), (24, 2), (57, 1), (66, 2), (233, 2)], [], [(3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (11, 1), (13, 1), (16, 2), (24, 2), (57, 1), (66, 2), (233, 2)], [(3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 1), (13, 1), (16, 2), (24, 2), (57, 1), (66, 2), (233, 2)], [], [], [], [], [], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (14, 1), (15, 1), (16, 1), (57, 1), (66, 2), (233, 2)], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (14, 2), (15, 2), (16, 2), (57, 2), (66, 1), (233, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (11, 2), (12, 1), (15, 1), (16, 1), (57, 1), (66, 2), (233, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (13, 2), (14, 2), (16, 2), (24, 1)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (13, 2), (14, 2), (16, 2), (24, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (13, 1), (14, 1), (16, 1), (24, 2), (60, 1), (66, 2)], [(3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (13, 1), (14, 1), (16, 1), (24, 2), (58, 1), (66, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (8, 2), (11, 2), (13, 1), (16, 2), (24, 1), (63, 2), (66, 1), (120, 1)], [(0, 1), (1, 1), (3, 2), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (15, 2), (16, 1), (18, 1), (20, 2), (24, 2), (57, 1), (66, 2), (172, 2), (174, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (14, 1), (15, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (14, 1), (15, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (11, 2), (14, 2), (15, 1)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (14, 2), (15, 2), (16, 2), (17, 1)], [(0, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (13, 1), (14, 1), (16, 1), (18, 2), (22, 1)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (14, 1), (15, 2), (60, 2), (67, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (14, 1), (15, 1), (66, 2), (73, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 1), (7, 2), (9, 1), (11, 1), (13, 2), (14, 2), (15, 1), (63, 2), (66, 1), (127, 1)], [(0, 2), (1, 2), (2, 1), (3, 1), (6, 1), (7, 2), (9, 1), (11, 1), (14, 2), (16, 1), (18, 2), (63, 2), (66, 1), (137, 1)], [], [], [(0, 2), (3, 2), (4, 2), (6, 1), (7, 2), (8, 1), (9, 1), (11, 1), (14, 2), (16, 1), (24, 1), (44, 1), (57, 2), (66, 1), (233, 1)], [], [(2, 2), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (11, 1), (13, 2), (16, 1), (24, 1), (57, 1), (66, 2), (157, 1), (233, 1)], [], [], [(1, 2), (3, 1), (6, 2), (7, 2), (8, 1), (11, 1), (12, 2), (13, 2), (14, 1), (15, 1), (24, 1), (57, 1), (66, 2), (233, 1), (274, 1)], [], [(0, 2), (1, 1), (2, 1), (4, 2), (9, 1), (13, 1), (14, 2), (15, 2), (16, 1), (57, 1), (66, 2), (233, 2)], [], [(1, 1), (4, 2), (6, 2), (8, 1), (15, 2), (16, 1), (114, 1), (233, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (4, 2), (9, 1), (13, 1), (14, 2), (15, 2), (16, 1), (24, 2), (57, 1), (66, 2)], [(1, 1), (4, 2), (8, 1), (15, 2), (16, 1), (24, 2)], [], [], [], [(1, 1), (3, 1), (4, 2), (8, 2), (9, 1), (13, 1), (14, 2), (15, 2), (63, 1), (66, 2), (120, 2), (130, 1)], [], [(3, 1), (4, 2), (66, 2), (68, 1)], [], [], [(1, 1), (4, 2), (15, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb58 : List (List (Nat × Nat)) := [[], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (12, 2), (14, 1), (18, 1), (19, 2), (72, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (12, 2), (14, 1), (18, 1), (19, 2), (57, 2), (72, 1), (114, 1)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (12, 1), (14, 2), (18, 1), (19, 1), (57, 2), (63, 2), (72, 2), (233, 1)], [], [(5, 1), (7, 1), (10, 2), (12, 2), (14, 1), (19, 2), (57, 2), (72, 1), (172, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (8, 2), (12, 2), (14, 1), (19, 2), (57, 2), (72, 1), (172, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (12, 1), (14, 2), (19, 1), (24, 1), (57, 2), (63, 2), (72, 2), (172, 1)], [], [(0, 1), (1, 2), (6, 2), (7, 1), (8, 2), (12, 2), (14, 1), (18, 2), (19, 2), (57, 1), (63, 1), (77, 1), (172, 2)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (12, 2), (14, 1), (18, 1), (19, 2), (57, 2), (72, 1), (172, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 2), (12, 1), (14, 2), (18, 1), (19, 1), (57, 2), (63, 2), (72, 2), (172, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (12, 2), (14, 1), (18, 2), (19, 2), (57, 1), (63, 1), (72, 1), (172, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 2), (10, 1), (12, 1), (18, 2), (19, 2), (57, 1), (72, 2), (172, 2)], [(0, 2), (5, 1), (7, 1), (8, 1), (10, 2), (18, 2), (19, 2), (57, 1), (63, 2), (172, 2)], [], [], [(0, 1), (5, 2), (7, 1), (8, 1), (10, 2), (18, 2), (19, 2), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (7, 1), (10, 1), (12, 1), (14, 2), (19, 2), (57, 2), (60, 1), (63, 1), (72, 2), (172, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (10, 1), (12, 1), (14, 2), (19, 2), (57, 2), (58, 1), (63, 1), (72, 2), (172, 1)], [(0, 2), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (19, 1), (57, 1), (63, 2), (172, 2)], [], [(0, 2), (1, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (19, 1), (57, 1), (63, 2), (172, 2)], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (7, 2), (9, 1), (10, 2), (12, 2), (19, 1), (57, 1), (63, 1), (72, 1), (172, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (10, 1), (12, 1), (14, 2), (19, 2), (57, 2), (63, 1), (172, 1)], [], [], [], [], [(0, 2), (5, 1), (7, 1), (8, 2), (10, 2), (12, 1), (14, 2), (18, 1), (19, 2), (63, 1), (72, 2)], [], [], [], [(0, 2), (2, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 1), (14, 1), (18, 2), (19, 1), (63, 2), (64, 1)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (6, 1), (7, 2), (10, 2), (12, 2), (14, 1), (18, 2), (19, 1), (57, 1), (63, 1), (72, 1), (114, 2), (120, 1)], [(0, 1), (2, 1), (5, 1), (7, 1), (8, 2), (10, 2), (14, 2), (18, 1), (19, 2), (60, 2), (63, 1), (174, 1)], [], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 1), (6, 1), (8, 2), (10, 2), (12, 1), (14, 2), (63, 1), (72, 2)], [(0, 1), (1, 1), (5, 1), (6, 1), (8, 2), (10, 2), (12, 1), (14, 2), (63, 1), (72, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (10, 1), (12, 1), (14, 2), (63, 1), (72, 2)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (10, 1), (12, 1), (14, 2), (17, 1), (63, 2), (72, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (10, 1), (12, 2), (14, 1), (22, 1), (63, 2), (72, 1)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 1), (10, 1), (12, 2), (14, 1), (63, 1), (67, 1), (72, 1)], [(1, 1), (3, 1), (4, 2), (5, 2), (6, 1), (8, 2), (9, 1), (10, 2), (12, 1), (14, 1), (63, 1), (64, 2), (73, 1), (74, 2)], [], [], [(0, 1), (1, 2), (4, 1), (6, 2), (8, 1), (10, 1), (12, 2), (14, 1), (57, 2), (63, 2), (72, 2), (114, 1), (120, 2), (130, 1), (131, 2)], [], [], [], [], [(0, 1), (5, 2), (7, 2), (8, 2), (10, 1), (18, 1), (19, 1), (44, 1), (57, 2), (63, 1), (172, 1)], [], [], [(0, 2), (2, 2), (3, 1), (5, 2), (6, 2), (7, 2), (8, 2), (10, 1), (18, 1), (19, 1), (57, 1), (63, 2), (114, 1), (120, 2), (172, 1), (392, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 1), (10, 1), (12, 2), (14, 1), (18, 1), (19, 1), (57, 1), (63, 1), (72, 1), (172, 1), (216, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 1), (12, 1), (14, 2), (19, 1), (57, 1), (72, 2), (172, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 2), (6, 2), (7, 2), (8, 1), (12, 1), (14, 2), (63, 1), (72, 2), (114, 1), (120, 2), (172, 2), (293, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 1), (12, 1), (14, 2), (18, 2), (19, 1), (57, 1), (72, 2)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (12, 1), (13, 1), (14, 2), (18, 2), (19, 1), (63, 1), (72, 2)], [], [], [(0, 1), (5, 2), (57, 1), (72, 2), (114, 2), (131, 1)], [(0, 1), (5, 2), (72, 2), (74, 1)], [], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (63, 1), (72, 2)], [], [], [], [], [], [], []] + +def comb59 : List (List (Nat × Nat)) := [[], [(2, 2), (4, 1), (9, 2), (14, 1), (16, 2), (18, 2), (20, 1), (24, 1), (66, 1)], [(2, 2), (4, 1), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (18, 2), (20, 1), (24, 1), (57, 2), (66, 1), (114, 1)], [(2, 1), (4, 2), (6, 1), (9, 1), (12, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (66, 1), (172, 1)], [], [], [(1, 1), (2, 2), (4, 1), (6, 1), (7, 2), (9, 2), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (66, 1), (233, 1)], [(2, 2), (4, 1), (6, 1), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (18, 2), (20, 1), (57, 2), (66, 1), (233, 1)], [], [(2, 1), (4, 2), (6, 1), (9, 1), (12, 2), (15, 1), (18, 2), (20, 2), (57, 2), (66, 1), (233, 1)], [], [], [(6, 2), (12, 1), (14, 2), (15, 2), (16, 1), (18, 2), (24, 2), (57, 1), (66, 1), (77, 1), (233, 2)], [(2, 2), (4, 1), (6, 2), (9, 2), (12, 1), (15, 2), (18, 2), (20, 1), (24, 2), (57, 1), (63, 1), (66, 1), (233, 2)], [(2, 2), (4, 1), (6, 1), (8, 2), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (18, 2), (20, 1), (24, 1), (57, 2), (66, 1), (233, 1)], [], [(2, 1), (4, 2), (6, 2), (8, 2), (9, 1), (12, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (66, 1), (233, 1)], [], [(2, 1), (4, 2), (6, 2), (8, 2), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (18, 1), (20, 2), (24, 1), (57, 2), (66, 1), (233, 1)], [], [(2, 2), (4, 1), (6, 2), (9, 2), (12, 1), (15, 2), (18, 2), (20, 1), (24, 2), (57, 1), (66, 2), (233, 2)], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (7, 1), (8, 2), (9, 1), (12, 2), (14, 1), (16, 2), (18, 2), (20, 1), (24, 2), (57, 1), (66, 2), (233, 2)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (12, 2), (14, 1), (16, 2), (18, 2), (20, 1), (24, 2), (57, 1), (66, 2), (233, 2)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 2), (12, 1), (14, 2), (15, 1), (16, 1), (18, 2), (20, 1), (24, 2), (57, 1), (66, 2), (233, 2)], [], [], [(1, 2), (2, 2), (3, 2), (7, 1), (8, 1), (9, 1), (12, 2), (15, 2), (18, 2), (20, 1), (57, 2), (60, 1), (233, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 2), (8, 2), (12, 1), (14, 2), (16, 1), (18, 1), (20, 2), (57, 1), (66, 2), (233, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (15, 1), (18, 1), (20, 2), (57, 1), (66, 2), (233, 2)], [], [], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (7, 1), (8, 1), (12, 2), (14, 1), (15, 2), (18, 2), (20, 1), (57, 2), (66, 1), (233, 1)], [], [], [], [], [(1, 1), (2, 2), (3, 2), (4, 1), (6, 2), (7, 2), (8, 1), (9, 1), (12, 2), (15, 2), (18, 2), (20, 1), (24, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (15, 1), (18, 1), (20, 2), (24, 2), (58, 1), (66, 2)], [], [], [(1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 2), (15, 1), (18, 1), (20, 2), (24, 2), (57, 1), (66, 2), (114, 2), (115, 1)], [], [], [(1, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (8, 1), (12, 2), (15, 2), (18, 2), (20, 1), (24, 1), (60, 2), (66, 1), (236, 1)], [], [], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 1), (14, 2), (15, 2), (16, 1)], [], [(1, 1), (2, 2), (3, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (14, 2), (15, 2), (16, 1)], [], [(1, 1), (3, 1), (4, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (14, 2), (15, 2), (16, 1)], [(1, 2), (3, 2), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (12, 1), (15, 1)], [], [(1, 2), (3, 2), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (12, 1), (15, 1), (20, 2), (22, 1)], [], [(1, 2), (3, 2), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (14, 1), (15, 1), (16, 2), (65, 1), (66, 2)], [], [], [(1, 1), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (14, 2), (15, 2), (16, 1), (60, 2), (63, 2), (66, 1), (71, 1)], [], [], [(1, 1), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (12, 1), (14, 1), (15, 1), (16, 2), (57, 1), (60, 2), (63, 2), (66, 1), (114, 2), (127, 1)], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (7, 1), (8, 1), (12, 2), (14, 1), (16, 1), (18, 1), (20, 2), (24, 1), (44, 1), (57, 2), (66, 1), (233, 1)], [], [], [(0, 1), (1, 1), (3, 2), (4, 2), (6, 2), (7, 2), (8, 1), (9, 2), (12, 2), (14, 2), (16, 1), (18, 1), (20, 2), (24, 1), (57, 2), (58, 2), (66, 2), (233, 1), (392, 1)], [], [(1, 1), (2, 1), (3, 1), (6, 1), (7, 1), (9, 2), (12, 1), (15, 1), (18, 1), (20, 2), (24, 1), (57, 1), (66, 2), (233, 1), (274, 1)], [], [(2, 1), (4, 2), (6, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (18, 1), (20, 2), (57, 1), (66, 2), (233, 2)], [], [], [(0, 1), (5, 2), (6, 2), (8, 1), (12, 1), (14, 2), (15, 2), (16, 1), (57, 1), (58, 2), (233, 2), (293, 1)], [], [], [(2, 1), (4, 2), (6, 2), (8, 1), (9, 1), (12, 1), (14, 1), (15, 2), (16, 2), (18, 1), (20, 2), (24, 2), (57, 1), (66, 2)], [], [(2, 1), (4, 2), (6, 2), (9, 1), (12, 1), (13, 1), (14, 1), (15, 2), (16, 2), (18, 1), (20, 2), (24, 2)], [], [], [(3, 1), (4, 2), (9, 1), (12, 1), (14, 1), (15, 2), (16, 1), (57, 1), (66, 2), (114, 2), (130, 1)], [(3, 1), (4, 2), (9, 1), (14, 2), (66, 2), (73, 1)], [], [], [], [], [(1, 1), (4, 2), (7, 2), (11, 1), (12, 1), (14, 2), (15, 2), (16, 1)], [], [], [], [], [], [], []] + +def comb60 : List (List (Nat × Nat)) := [[], [(1, 2), (2, 1), (6, 2), (7, 1), (17, 2), (19, 2), (24, 1), (51, 1), (66, 2), (68, 1), (72, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 1), (7, 1), (8, 1), (9, 2), (12, 1), (17, 2), (19, 2), (24, 1), (51, 1), (57, 2), (68, 1), (114, 1)], [], [], [], [(1, 2), (2, 2), (7, 1), (12, 2), (17, 2), (19, 2), (51, 1), (58, 2), (66, 1), (68, 1), (72, 2), (114, 2), (115, 1), (233, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (12, 1), (17, 2), (19, 2), (51, 1), (57, 2), (68, 1), (233, 1)], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (12, 1), (17, 2), (19, 2), (51, 1), (57, 2), (66, 2), (68, 1), (72, 1), (233, 1)], [], [], [], [], [(0, 2), (1, 2), (3, 2), (6, 2), (7, 1), (8, 2), (9, 1), (12, 2), (17, 2), (19, 2), (24, 2), (51, 1), (57, 1), (63, 1), (66, 1), (68, 1), (72, 2), (233, 2)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 2), (7, 1), (9, 2), (12, 1), (17, 2), (19, 2), (24, 1), (51, 1), (57, 2), (68, 1), (233, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (9, 2), (12, 1), (16, 2), (17, 2), (19, 1), (20, 1), (24, 1), (51, 1), (57, 2), (66, 2), (68, 1), (72, 1), (233, 1)], [], [], [], [], [], [(0, 2), (1, 2), (3, 2), (6, 2), (7, 1), (8, 2), (9, 1), (12, 2), (17, 2), (19, 2), (24, 2), (51, 1), (57, 1), (66, 1), (68, 2), (72, 2), (233, 2)], [], [(1, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 2), (19, 2), (24, 2), (58, 1), (68, 2), (114, 1), (115, 2), (233, 2)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (6, 1), (7, 1), (9, 1), (12, 1), (19, 2), (24, 2), (57, 2), (58, 2), (66, 1), (68, 2), (72, 2), (114, 2), (115, 1), (233, 2)], [(1, 2), (2, 2), (3, 1), (4, 1), (6, 1), (7, 1), (9, 1), (12, 1), (19, 2), (24, 2), (57, 2), (58, 2), (66, 1), (68, 2), (72, 2), (114, 2), (115, 1), (233, 2)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (7, 1), (9, 2), (12, 2), (17, 1), (19, 2), (51, 2), (57, 1), (58, 2), (114, 1), (115, 2), (233, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (12, 1), (19, 1), (57, 2), (58, 2), (66, 1), (68, 2), (72, 2), (114, 2), (115, 1), (233, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (12, 1), (15, 1), (16, 2), (19, 1), (57, 2), (58, 2), (66, 1), (68, 2), (72, 2), (114, 2), (115, 1), (233, 2)], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 2), (12, 1), (17, 1), (19, 2), (21, 1), (51, 2), (57, 1), (58, 1), (66, 2), (68, 1), (72, 1), (114, 1), (115, 2), (233, 1)], [], [], [(1, 2), (3, 2), (4, 2), (6, 2), (7, 1), (9, 2), (17, 1), (19, 2), (24, 1), (51, 2), (57, 1), (58, 2), (66, 1), (72, 2), (114, 2), (115, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 2), (7, 1), (12, 2), (17, 1), (19, 2), (24, 1), (51, 2), (57, 1), (58, 2), (114, 2), (115, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (8, 2), (9, 1), (19, 1), (24, 2), (57, 2), (58, 1), (60, 1), (68, 2), (114, 1), (115, 2)], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 1), (6, 2), (7, 1), (8, 2), (9, 1), (12, 1), (19, 1), (24, 2), (57, 2), (58, 2), (66, 1), (68, 2), (72, 2), (114, 1), (115, 1), (117, 1)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (12, 2), (17, 1), (19, 2), (24, 1), (51, 2), (57, 1), (58, 2), (63, 2), (68, 1), (114, 2), (115, 1), (181, 1)], [], [], [(0, 2), (3, 2), (4, 2), (6, 2), (8, 1), (9, 2), (17, 1), (51, 2), (57, 1), (58, 2), (66, 1), (72, 2), (114, 2), (115, 1)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 1), (12, 2), (17, 1), (51, 2), (57, 1), (58, 2), (114, 2), (115, 1)], [(0, 1), (1, 2), (3, 1), (4, 2), (7, 1), (12, 1), (17, 1), (51, 2), (57, 2), (58, 1), (66, 2), (72, 1), (114, 1), (115, 2)], [(0, 1), (1, 2), (3, 1), (4, 2), (10, 1), (12, 1), (17, 1), (51, 2), (57, 2), (58, 1), (66, 2), (72, 1), (114, 1), (115, 2)], [(0, 2), (2, 2), (3, 1), (4, 1), (12, 1), (16, 1), (17, 1), (51, 2), (57, 2), (58, 1), (114, 1), (115, 2)], [(0, 1), (3, 1), (4, 1), (9, 1), (17, 2), (51, 2), (57, 2), (58, 1), (66, 2), (72, 1), (114, 1), (115, 2)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (12, 1), (17, 2), (51, 1), (57, 2), (58, 1), (66, 1), (68, 2), (114, 1), (115, 2)], [], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 1), (12, 2), (17, 1), (51, 2), (57, 1), (58, 1), (63, 2), (68, 1), (80, 1), (114, 2), (115, 1)], [], [], [(0, 1), (3, 1), (4, 1), (9, 1), (12, 1), (17, 1), (51, 2), (57, 2), (58, 1), (63, 2), (66, 2), (68, 1), (72, 1), (114, 1), (115, 1), (137, 1)], [], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (6, 1), (7, 2), (8, 1), (9, 2), (12, 2), (19, 1), (24, 1), (44, 1), (57, 1), (58, 1), (66, 2), (68, 1), (72, 1), (114, 1), (115, 2), (233, 1)], [], [], [], [(2, 1), (4, 2), (6, 1), (7, 2), (8, 1), (9, 1), (17, 2), (19, 1), (24, 1), (51, 1), (58, 1), (66, 2), (68, 2), (72, 1), (114, 1), (115, 2), (216, 1), (233, 1)], [(2, 1), (4, 2), (6, 1), (7, 2), (8, 1), (9, 1), (17, 2), (19, 1), (24, 1), (51, 1), (58, 1), (66, 2), (68, 2), (72, 1), (114, 1), (115, 2), (233, 1), (274, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (9, 1), (12, 2), (17, 1), (19, 1), (51, 2), (57, 1), (68, 2), (233, 2)], [], [], [], [(172, 1), (233, 2)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (9, 1), (12, 2), (17, 1), (19, 1), (24, 2), (51, 2), (57, 1), (68, 2)], [], [], [(18, 1), (24, 2)], [], [(2, 1), (3, 2), (6, 1), (8, 2), (9, 1), (12, 2), (57, 1), (68, 2), (114, 2), (130, 1)], [(0, 1), (2, 2), (66, 1), (68, 2), (72, 2), (73, 1)], [], [], [], [], [], [(6, 1), (8, 2)], [], [], [(0, 1), (2, 1), (3, 1), (9, 2), (12, 1), (66, 1), (72, 2)], [], [], []] + +def comb61 : List (List (Nat × Nat)) := [[(0, 2), (2, 1), (3, 2), (9, 1), (13, 1)], [], [], [(4, 2), (8, 2), (9, 1), (13, 1), (15, 1), (18, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (172, 1)], [(4, 2), (8, 2), (9, 1), (13, 1), (15, 1), (18, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (233, 1)], [(0, 2), (2, 1), (4, 2), (9, 1), (15, 1), (34, 2), (293, 1)], [], [], [], [(3, 1), (4, 1), (8, 2), (9, 1), (15, 2), (34, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (293, 1)], [(3, 1), (4, 1), (8, 2), (9, 1), (15, 2), (18, 2), (24, 1), (34, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (293, 1)], [], [], [(0, 2), (2, 1), (4, 2), (8, 2), (9, 1), (13, 1), (15, 1), (34, 2), (57, 2), (63, 1), (293, 1)], [(0, 1), (2, 2), (4, 2), (8, 1), (9, 1), (13, 2), (15, 1), (18, 1), (34, 1), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (77, 2), (293, 2)], [(0, 1), (2, 2), (4, 2), (8, 1), (9, 1), (13, 2), (15, 1), (20, 1), (34, 1), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (77, 2), (293, 2)], [], [], [], [], [], [(4, 2), (8, 2), (9, 1), (13, 1), (15, 1), (18, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (293, 1)], [(3, 1), (4, 2), (13, 2), (18, 2), (34, 2), (60, 1), (65, 1), (68, 2), (77, 1), (293, 2)], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (8, 2), (13, 2), (15, 1), (18, 2), (34, 2), (57, 2), (60, 2), (63, 1), (64, 2), (77, 1), (293, 2)], [(2, 2), (3, 2), (5, 1), (8, 2), (9, 1), (13, 2), (15, 1), (18, 2), (34, 2), (57, 2), (60, 2), (63, 1), (64, 2), (77, 1), (293, 2)], [], [], [(3, 1), (4, 2), (8, 2), (18, 2), (34, 2), (57, 2), (58, 1), (60, 1), (63, 1), (64, 2), (65, 1), (68, 2), (77, 1), (293, 2)], [(1, 1), (3, 2), (4, 2), (8, 1), (9, 2), (15, 2), (18, 1), (34, 1), (57, 1), (60, 1), (63, 2), (64, 1), (77, 2), (293, 1)], [], [], [(3, 2), (4, 2), (8, 1), (9, 2), (18, 1), (34, 1), (57, 1), (60, 1), (63, 2), (64, 1), (77, 2), (293, 1)], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 1), (8, 2), (18, 1), (21, 1), (57, 2), (60, 2), (63, 1), (64, 2), (77, 1), (293, 2)], [], [], [(0, 1), (3, 2), (4, 1), (8, 2), (13, 2), (15, 1), (18, 2), (34, 1), (57, 2), (60, 1), (63, 1), (64, 2), (65, 1), (68, 2), (77, 1)], [(3, 2), (4, 1), (8, 2), (9, 1), (13, 2), (15, 1), (18, 2), (34, 1), (57, 2), (60, 1), (63, 1), (64, 2), (65, 1), (68, 2), (77, 1)], [(3, 1), (8, 1), (9, 2), (13, 1), (15, 1), (18, 1), (34, 2), (57, 1), (60, 2), (63, 2), (64, 1), (77, 2)], [], [], [(3, 1), (8, 1), (9, 2), (13, 1), (15, 1), (18, 1), (34, 2), (57, 1), (60, 1), (63, 2), (64, 1), (77, 2), (117, 1)], [], [], [], [], [(0, 1), (2, 2), (3, 2), (8, 2), (9, 1), (13, 2), (15, 1), (18, 2), (34, 2), (57, 2), (60, 2), (63, 1), (64, 1), (77, 1), (172, 2), (181, 1)], [(0, 1), (2, 2), (3, 2), (4, 2), (8, 1), (9, 2), (15, 2), (18, 1), (34, 2), (57, 1), (60, 2), (63, 2), (64, 1), (65, 2), (68, 1), (77, 2)], [(3, 2), (4, 2), (8, 1), (9, 2), (15, 2), (18, 1), (34, 2), (57, 1), (60, 2), (63, 2), (64, 1), (65, 2), (68, 1), (77, 2)], [], [], [], [], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (8, 2), (18, 1), (22, 1), (34, 2), (57, 2), (60, 1), (63, 1), (64, 2), (65, 1), (68, 2), (77, 1)], [], [(0, 2), (2, 1), (3, 1), (8, 2), (9, 2), (15, 1), (18, 2), (34, 1), (57, 2), (60, 1), (63, 1), (64, 2), (65, 1), (77, 1)], [(2, 1), (3, 1), (4, 1), (5, 2), (8, 2), (9, 1), (15, 1), (18, 2), (34, 1), (57, 2), (60, 1), (63, 1), (64, 2), (67, 1), (77, 1)], [(0, 2), (2, 1), (8, 2), (15, 1), (18, 1), (34, 2), (57, 2), (60, 1), (63, 1), (64, 1), (71, 1), (73, 1), (74, 2), (77, 2)], [(2, 1), (4, 1), (5, 2), (8, 2), (9, 2), (15, 1), (18, 1), (34, 2), (57, 2), (60, 1), (63, 1), (64, 1), (71, 1), (77, 2)], [], [(3, 1), (6, 2), (9, 2), (15, 1), (18, 1), (34, 2), (57, 2), (60, 1), (63, 1), (64, 1), (77, 2), (127, 1), (130, 1), (131, 2)], [(0, 1), (3, 1), (4, 1), (5, 2), (6, 2), (9, 1), (15, 1), (18, 1), (34, 2), (57, 2), (60, 1), (63, 1), (64, 1), (77, 2), (127, 1)], [], [], [], [], [(3, 2), (4, 1), (13, 1), (18, 1), (34, 1), (60, 2), (65, 2), (68, 1), (77, 2), (99, 1), (293, 1)], [(3, 2), (4, 1), (6, 2), (8, 1), (13, 1), (18, 1), (34, 1), (60, 2), (65, 2), (68, 1), (77, 2), (157, 1), (293, 1)], [(3, 2), (4, 1), (6, 2), (8, 1), (13, 1), (18, 1), (34, 1), (60, 2), (65, 2), (68, 1), (77, 2), (293, 1), (392, 1)], [], [], [], [], [(3, 2), (4, 1), (15, 2), (34, 1), (57, 1), (293, 2)], [(0, 1), (2, 2), (4, 1), (6, 2), (8, 1), (9, 2), (15, 2), (34, 1), (114, 1), (293, 2)], [], [], [], [], [(0, 1), (2, 2), (3, 1), (8, 1), (9, 2), (13, 2)], [], [], [], [(0, 2), (2, 1), (6, 1), (8, 2), (18, 1), (34, 2), (64, 1), (65, 1), (68, 2), (77, 2), (127, 2), (131, 1)], [(3, 1), (9, 2), (18, 1), (34, 2), (64, 1), (65, 1), (68, 2), (71, 2), (74, 1), (77, 2)], [], [], [], [], [], [(6, 1), (8, 2)], [], [], [(0, 1), (2, 2), (3, 1), (9, 2)], [], [], []] + +def comb62 : List (List (Nat × Nat)) := [[(0, 1), (1, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (18, 1), (19, 2)], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (18, 1), (19, 1), (57, 2), (63, 1), (67, 1), (121, 2), (233, 1)], [(0, 1), (1, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (19, 2), (172, 1)], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (6, 1), (7, 1), (8, 1), (9, 1), (12, 1), (19, 2), (57, 2), (63, 1), (67, 1), (121, 2), (172, 1)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (19, 1), (24, 1), (57, 2), (63, 1), (67, 1), (121, 2), (172, 1)], [], [(1, 1), (2, 2), (3, 1), (4, 1), (6, 1), (7, 2), (8, 1), (9, 1), (18, 1), (19, 1), (57, 2), (63, 1), (64, 2), (77, 1), (172, 1)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (18, 1), (19, 1), (57, 2), (63, 1), (172, 1)], [(0, 2), (2, 1), (3, 2), (8, 1), (9, 1), (18, 2), (57, 1), (63, 2), (67, 2), (121, 1), (172, 2)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (18, 2), (19, 2), (57, 1), (63, 2), (67, 2), (121, 1), (172, 2)], [], [(0, 1), (1, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 2), (18, 2), (19, 2), (57, 1), (63, 2), (67, 2), (121, 1), (172, 2)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (18, 1), (19, 1), (57, 2), (63, 1), (67, 1), (121, 2), (172, 1)], [], [(0, 1), (1, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 2), (12, 1), (18, 2), (19, 2), (58, 1), (64, 1), (66, 1), (67, 1), (72, 2), (121, 2), (172, 2)], [], [], [(0, 2), (1, 2), (2, 2), (4, 1), (7, 1), (8, 2), (9, 2), (12, 2), (18, 2), (19, 2), (57, 2), (58, 2), (63, 1), (66, 2), (67, 1), (72, 1), (121, 2), (172, 2)], [], [(0, 2), (1, 2), (2, 1), (4, 1), (5, 1), (7, 1), (8, 2), (9, 2), (12, 2), (18, 2), (19, 2), (57, 2), (58, 2), (63, 1), (66, 2), (67, 1), (72, 1), (121, 2), (172, 2)], [], [(1, 1), (2, 2), (4, 1), (7, 2), (8, 2), (9, 2), (12, 1), (19, 1), (57, 2), (58, 1), (60, 1), (63, 1), (66, 1), (67, 1), (72, 2), (121, 2), (172, 2)], [], [(0, 2), (2, 2), (6, 1), (7, 1), (12, 1), (19, 2), (57, 1), (58, 1), (63, 2), (66, 1), (67, 2), (72, 2), (121, 1), (172, 1)], [(1, 2), (2, 2), (4, 1), (6, 1), (7, 1), (9, 2), (12, 1), (19, 2), (57, 1), (58, 1), (63, 2), (66, 1), (67, 2), (72, 2), (121, 1), (172, 1)], [], [], [], [], [(1, 1), (2, 2), (3, 2), (4, 2), (7, 2), (8, 2), (9, 1), (12, 1), (14, 1), (19, 1), (57, 2), (58, 2), (63, 1), (66, 2), (67, 1), (72, 1), (121, 2), (172, 2)], [], [], [], [], [(1, 1), (2, 2), (4, 2), (7, 2), (8, 2), (9, 2), (12, 1), (18, 2), (19, 1), (57, 2), (58, 1), (63, 1), (66, 1), (67, 1), (72, 2), (121, 2)], [], [(0, 2), (1, 2), (2, 2), (4, 1), (6, 1), (7, 1), (9, 2), (12, 1), (18, 1), (19, 2), (57, 1), (58, 2), (63, 2), (66, 1), (67, 2), (72, 2), (121, 1)], [], [], [(1, 2), (2, 1), (3, 1), (4, 1), (7, 1), (8, 1), (9, 1), (12, 1), (18, 1), (19, 2), (57, 1), (58, 1), (63, 2), (66, 1), (67, 2), (72, 2), (115, 1), (121, 1)], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (7, 1), (8, 2), (9, 2), (12, 2), (18, 2), (19, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 2), (67, 1), (72, 1), (121, 2), (233, 2), (236, 1)], [], [(0, 2), (2, 1), (6, 1), (12, 2), (57, 1), (58, 2), (63, 2), (66, 2), (67, 2), (72, 1), (121, 1)], [], [(0, 2), (2, 1), (4, 1), (6, 1), (9, 2), (12, 2), (57, 1), (58, 2), (63, 2), (66, 2), (67, 2), (72, 1), (121, 1)], [], [(1, 2), (3, 1), (4, 1), (7, 1), (8, 1), (9, 1), (12, 2), (57, 1), (58, 2), (63, 2), (66, 2), (67, 2), (72, 1), (121, 1)], [], [], [(0, 1), (3, 2), (5, 2), (8, 2), (9, 1), (17, 1), (57, 2), (58, 1), (63, 1), (66, 1), (67, 1), (72, 2), (121, 2)], [], [(0, 1), (2, 2), (3, 2), (6, 2), (9, 1), (12, 1), (57, 2), (58, 1), (63, 1), (66, 2), (67, 1), (72, 2), (121, 2)], [], [(0, 1), (3, 2), (5, 2), (6, 2), (9, 1), (12, 1), (57, 2), (58, 1), (63, 1), (66, 1), (67, 2), (72, 2), (121, 2)], [(0, 1), (2, 1), (3, 1), (5, 1), (6, 1), (12, 2), (14, 2), (57, 1), (58, 2), (63, 2), (66, 1), (67, 2), (72, 2), (73, 1), (74, 2), (121, 1)], [], [(0, 1), (3, 2), (5, 2), (6, 2), (9, 1), (12, 1), (57, 2), (58, 1), (63, 1), (66, 1), (67, 2), (72, 2), (80, 1), (121, 1)], [(0, 2), (3, 2), (5, 1), (8, 1), (9, 2), (12, 2), (14, 2), (57, 1), (58, 1), (63, 2), (66, 1), (67, 2), (72, 2), (115, 1), (121, 1), (130, 1), (131, 2)], [], [(0, 2), (1, 2), (2, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 1), (11, 2), (12, 1), (57, 2), (58, 1), (63, 1), (66, 1), (67, 2), (72, 2), (121, 1), (137, 1)], [], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (12, 2), (18, 1), (19, 1), (58, 2), (64, 2), (66, 2), (67, 2), (72, 1), (99, 1), (121, 1), (172, 1)], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (14, 2), (18, 1), (19, 1), (58, 2), (64, 2), (66, 2), (67, 2), (72, 1), (121, 1), (157, 1), (172, 1)], [], [(2, 2), (3, 2), (6, 1), (7, 2), (8, 2), (9, 2), (14, 2), (18, 1), (19, 1), (58, 2), (64, 2), (66, 2), (67, 2), (72, 1), (121, 1), (172, 1), (216, 1)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 2), (19, 1), (57, 1), (172, 2)], [(0, 2), (1, 1), (4, 2), (7, 2), (9, 1), (19, 1), (114, 1), (172, 2)], [], [], [], [], [(0, 2), (1, 1), (4, 2), (6, 1), (7, 2), (9, 1), (18, 2), (19, 1)], [], [], [], [(0, 2), (2, 2), (3, 1), (5, 2), (6, 2), (8, 2), (9, 2), (12, 2), (57, 1), (63, 2), (67, 2), (115, 2), (121, 1), (131, 1)], [(2, 1), (3, 2), (5, 2), (6, 1), (9, 1), (12, 2), (57, 1), (58, 2), (63, 2), (67, 2), (74, 1), (121, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1)], [], [], [], [], [], [], []] + +def comb63 : List (List (Nat × Nat)) := [[(3, 2), (4, 1), (6, 1), (8, 2), (13, 1), (15, 2), (18, 2), (20, 1), (24, 1)], [], [], [(3, 1), (4, 2), (6, 1), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (63, 1), (172, 1)], [], [(3, 2), (4, 1), (6, 1), (8, 2), (13, 1), (15, 2), (18, 2), (20, 1), (233, 1)], [], [], [(3, 2), (4, 1), (6, 1), (8, 1), (13, 2), (15, 2), (18, 2), (20, 1), (57, 2), (63, 1), (233, 1)], [(3, 1), (4, 2), (6, 1), (8, 1), (13, 2), (15, 1), (18, 2), (20, 2), (57, 2), (63, 1), (233, 1)], [], [], [(0, 1), (3, 2), (4, 1), (6, 1), (8, 1), (12, 2), (13, 2), (15, 2), (18, 1), (20, 1), (24, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (233, 1)], [], [(6, 1), (24, 2), (57, 1), (63, 2), (233, 2)], [], [], [(3, 2), (4, 1), (6, 1), (13, 1), (15, 2), (18, 2), (20, 1), (24, 2), (57, 1), (63, 2), (233, 2)], [], [(3, 1), (4, 2), (6, 1), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (24, 1), (57, 2), (63, 1), (233, 1)], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 2), (8, 1), (9, 1), (13, 1), (15, 1), (18, 2), (20, 2), (24, 2), (57, 1), (64, 1), (65, 2), (68, 1), (73, 1), (75, 2), (233, 2)], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 2), (9, 2), (13, 1), (18, 2), (24, 2), (57, 1), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (233, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (9, 2), (13, 1), (18, 2), (24, 2), (57, 1), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (233, 2)], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (9, 1), (13, 2), (18, 1), (60, 1), (63, 1), (65, 1), (68, 2), (73, 1), (75, 2), (233, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (9, 1), (13, 2), (18, 1), (58, 1), (63, 1), (65, 1), (68, 2), (73, 1), (75, 2), (233, 2)], [(0, 2), (1, 1), (2, 1), (8, 1), (9, 1), (13, 1), (15, 1), (18, 2), (20, 2), (57, 2), (63, 2), (65, 1), (68, 2), (73, 1), (75, 2), (233, 1)], [], [(0, 2), (2, 1), (4, 1), (8, 1), (9, 1), (13, 1), (15, 1), (18, 2), (20, 2), (57, 2), (63, 2), (65, 1), (68, 2), (73, 1), (75, 2), (233, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (9, 2), (13, 1), (15, 1), (18, 2), (20, 2), (57, 2), (63, 2), (65, 1), (68, 2), (73, 1), (75, 2), (233, 1)], [(0, 1), (2, 1), (3, 1), (4, 2), (6, 2), (9, 2), (12, 1), (13, 1), (15, 2), (18, 1), (20, 1), (57, 1), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (233, 2)], [], [], [], [], [(0, 2), (2, 2), (3, 1), (4, 2), (6, 2), (9, 1), (13, 2), (18, 1), (24, 2), (63, 1), (65, 1), (68, 2), (73, 1), (75, 2)], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (8, 1), (9, 1), (13, 1), (18, 2), (24, 1), (63, 2), (65, 1), (68, 2), (73, 2), (75, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 1), (6, 1), (9, 2), (13, 1), (18, 2), (24, 1), (63, 2), (64, 2), (65, 1), (68, 2), (73, 2), (75, 1), (120, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (9, 2), (13, 1), (18, 2), (24, 2), (57, 1), (60, 2), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (172, 2), (174, 1)], [], [], [(0, 2), (2, 1), (8, 1), (9, 2), (15, 1), (20, 2), (63, 2), (65, 2), (68, 1), (73, 2), (75, 1)], [], [], [(0, 1), (2, 1), (5, 1), (8, 1), (9, 2), (15, 1), (20, 2), (63, 2), (65, 2), (68, 1), (73, 2), (75, 1)], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (9, 2), (10, 1), (15, 1), (20, 2), (63, 2), (65, 2), (68, 1), (73, 2), (75, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (9, 1), (13, 2), (20, 1), (63, 1), (65, 1), (68, 2), (73, 1), (75, 2)], [], [], [(0, 2), (2, 1), (8, 2), (9, 1), (15, 2), (20, 1), (63, 1), (65, 2), (66, 1), (68, 1), (73, 1), (75, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (8, 2), (9, 1), (15, 2), (20, 1), (63, 1), (65, 2), (68, 2), (73, 1), (75, 2)], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (8, 2), (9, 2), (13, 2), (15, 1), (20, 2), (57, 1), (60, 2), (63, 1), (65, 2), (68, 1), (71, 1), (73, 2), (75, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (8, 2), (9, 2), (13, 2), (15, 2), (20, 1), (57, 1), (58, 2), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (80, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (8, 2), (9, 2), (13, 2), (15, 1), (20, 2), (57, 1), (60, 2), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (127, 1)], [(0, 1), (2, 2), (6, 1), (8, 1), (11, 2), (13, 2), (15, 2), (20, 1), (57, 1), (58, 2), (63, 1), (65, 2), (68, 1), (73, 2), (75, 1), (137, 1)], [], [], [], [(2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 1), (12, 2), (15, 2), (18, 1), (20, 1), (24, 1), (57, 2), (64, 2), (65, 1), (68, 2), (73, 2), (75, 1), (99, 1), (233, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 2), (13, 2), (15, 2), (18, 1), (20, 1), (24, 1), (57, 2), (64, 2), (65, 1), (68, 2), (73, 2), (75, 1), (157, 1), (233, 1)], [], [], [(0, 2), (1, 2), (2, 2), (6, 2), (8, 1), (9, 2), (12, 2), (15, 2), (18, 1), (20, 1), (24, 1), (57, 2), (64, 2), (65, 1), (68, 2), (73, 2), (75, 1), (233, 1), (274, 1)], [], [], [(3, 1), (4, 2), (6, 2), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (233, 2)], [(3, 1), (4, 2), (6, 2), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (114, 1), (233, 2)], [], [], [], [], [(3, 1), (4, 2), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (24, 2)], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 2), (6, 2), (8, 2), (9, 2), (13, 2), (15, 1), (20, 2), (63, 2), (64, 1), (73, 2), (75, 1), (120, 2), (130, 1)], [(3, 1), (4, 2), (8, 1), (13, 2), (15, 1), (20, 2), (63, 2), (75, 1)], [], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (11, 1)], [], [], [], [], [], [], []] + +def comb64 : List (List (Nat × Nat)) := [[(1, 2), (4, 1), (15, 1), (16, 2), (18, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 2), (5, 2), (6, 2), (15, 1), (16, 2), (18, 1), (60, 2), (67, 1), (114, 1)], [], [(1, 1), (2, 1), (3, 2), (5, 2), (8, 2), (15, 2), (16, 1), (18, 1), (60, 2), (67, 1), (233, 1)], [(1, 2), (4, 1), (15, 1), (16, 2), (172, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 2), (5, 2), (15, 1), (16, 2), (60, 2), (67, 1), (172, 1)], [], [], [(1, 1), (2, 1), (3, 2), (5, 2), (8, 2), (15, 2), (16, 1), (24, 1), (60, 2), (67, 1), (172, 1)], [(1, 2), (4, 1), (15, 1), (16, 2), (57, 2), (75, 1), (172, 1)], [], [(1, 1), (4, 2), (8, 2), (15, 2), (16, 1), (18, 1), (57, 2), (63, 1), (172, 1)], [], [(2, 1), (3, 2), (4, 2), (5, 1), (8, 1), (16, 2), (18, 2), (20, 1), (60, 1), (67, 2), (172, 2)], [(1, 2), (2, 2), (3, 1), (5, 1), (6, 1), (15, 1), (16, 2), (18, 2), (60, 1), (67, 2), (172, 2)], [], [], [(1, 2), (2, 2), (3, 1), (5, 1), (8, 1), (15, 1), (16, 2), (18, 2), (60, 1), (67, 2), (172, 2)], [], [], [(1, 2), (2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (8, 1), (9, 1), (12, 1), (15, 1), (16, 2), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (66, 1), (67, 1), (72, 2), (172, 2)], [], [(0, 1), (1, 2), (3, 1), (4, 2), (5, 2), (6, 1), (8, 1), (9, 1), (12, 2), (15, 1), (16, 2), (18, 2), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (172, 2)], [], [], [(1, 2), (3, 1), (4, 2), (6, 1), (8, 1), (9, 1), (12, 2), (15, 1), (16, 2), (18, 2), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (172, 2)], [], [], [], [], [(1, 2), (3, 2), (5, 1), (6, 2), (8, 2), (9, 2), (12, 1), (15, 1), (16, 2), (58, 1), (60, 1), (66, 1), (67, 2), (72, 2), (172, 1)], [], [], [(1, 1), (2, 1), (5, 2), (6, 1), (9, 2), (12, 2), (15, 2), (16, 1), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (172, 2)], [(1, 2), (2, 2), (3, 2), (5, 1), (6, 1), (9, 2), (12, 2), (15, 1), (16, 2), (58, 1), (60, 1), (66, 1), (67, 2), (72, 2), (172, 1)], [], [], [], [(1, 2), (2, 1), (3, 1), (4, 2), (5, 2), (6, 2), (9, 2), (12, 1), (15, 2), (16, 1), (18, 2), (58, 1), (60, 2), (66, 1), (67, 1), (72, 2)], [], [(1, 1), (2, 1), (3, 1), (5, 2), (6, 2), (9, 2), (12, 1), (15, 2), (16, 1), (18, 2), (58, 1), (60, 2), (66, 1), (67, 1), (72, 2)], [(1, 2), (2, 2), (4, 2), (5, 1), (6, 2), (8, 2), (9, 2), (12, 1), (15, 1), (16, 2), (18, 1), (58, 1), (60, 2), (66, 1), (67, 2), (72, 2)], [(0, 2), (1, 2), (3, 2), (5, 1), (6, 2), (8, 2), (9, 2), (12, 1), (15, 1), (16, 2), (18, 1), (58, 2), (60, 1), (66, 1), (67, 2), (72, 2)], [], [], [], [(1, 1), (2, 1), (5, 2), (6, 2), (9, 2), (12, 2), (15, 2), (16, 1), (18, 2), (58, 2), (60, 2), (64, 2), (66, 2), (67, 1), (72, 1), (114, 2), (120, 1)], [(1, 1), (3, 2), (5, 1), (6, 2), (8, 2), (9, 2), (12, 1), (15, 2), (16, 2), (18, 1), (20, 2), (58, 1), (60, 1), (66, 1), (67, 2), (72, 2), (174, 1)], [], [], [], [(2, 2), (4, 2), (5, 1), (6, 1), (9, 1), (12, 2), (58, 2), (60, 1), (66, 2), (67, 2), (72, 1)], [(2, 2), (3, 2), (5, 1), (6, 1), (9, 1), (12, 2), (58, 2), (60, 1), (66, 2), (67, 2), (72, 1)], [], [], [(2, 2), (4, 1), (5, 1), (6, 2), (8, 2), (9, 2), (10, 1), (12, 1), (58, 1), (60, 2), (66, 1), (67, 1), (72, 2)], [(1, 2), (2, 2), (3, 2), (5, 1), (6, 1), (9, 1), (12, 2), (15, 1), (58, 2), (60, 1), (66, 2), (67, 2), (72, 1)], [], [], [(2, 1), (3, 1), (4, 1), (5, 2), (6, 2), (9, 1), (12, 1), (58, 1), (60, 2), (66, 2), (67, 1), (72, 2)], [(2, 1), (4, 2), (5, 2), (6, 1), (9, 1), (12, 2), (58, 2), (60, 1), (65, 1), (66, 2), (67, 1), (72, 1)], [], [], [(3, 2), (4, 2), (6, 2), (9, 2), (12, 1), (57, 1), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (71, 1), (72, 2)], [(3, 2), (4, 2), (6, 2), (9, 2), (12, 1), (57, 1), (58, 1), (60, 1), (63, 2), (66, 1), (67, 2), (72, 2), (80, 1)], [(2, 1), (4, 2), (5, 2), (8, 1), (9, 1), (12, 2), (58, 1), (60, 1), (64, 1), (66, 1), (67, 2), (72, 2), (114, 1), (120, 2), (130, 1), (131, 2)], [], [], [], [], [], [(1, 1), (2, 2), (4, 1), (5, 1), (6, 2), (8, 2), (9, 1), (12, 1), (15, 2), (16, 1), (18, 1), (57, 2), (58, 2), (60, 1), (63, 1), (64, 2), (66, 2), (67, 2), (72, 1), (99, 1), (172, 1)], [], [(0, 1), (1, 1), (2, 1), (4, 1), (5, 1), (9, 1), (12, 2), (15, 2), (16, 1), (18, 1), (57, 2), (58, 1), (60, 1), (63, 1), (66, 2), (67, 2), (72, 1), (114, 1), (120, 2), (172, 1), (392, 1)], [(2, 2), (3, 2), (4, 2), (5, 1), (6, 1), (8, 2), (9, 2), (12, 2), (18, 1), (57, 2), (58, 2), (60, 1), (63, 1), (64, 2), (66, 2), (67, 2), (72, 1), (172, 1), (216, 1)], [], [], [], [(1, 1), (4, 2), (15, 2), (16, 1), (57, 1), (172, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (15, 2), (16, 1), (58, 2), (64, 1), (114, 1), (120, 2), (172, 2), (293, 1)], [], [], [], [], [(1, 1), (4, 2), (13, 1), (15, 2), (16, 1), (18, 2)], [], [], [(3, 1), (4, 2), (6, 2), (8, 2), (12, 2), (60, 1), (67, 2), (114, 2), (131, 1)], [], [(3, 1), (4, 2), (6, 1), (12, 2), (58, 2), (60, 1), (65, 2), (66, 2), (68, 1), (72, 1)], [], [], [(1, 1), (4, 2), (15, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb65 : List (List (Nat × Nat)) := [[(3, 2), (4, 1), (6, 1), (8, 2), (14, 1), (16, 2), (24, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (18, 1), (19, 2), (24, 1), (57, 2), (63, 1), (172, 1)], [], [(3, 2), (4, 1), (6, 1), (8, 2), (14, 1), (16, 2), (233, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (14, 2), (16, 1), (18, 1), (19, 2), (57, 2), (63, 1), (233, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (18, 2), (19, 2), (57, 2), (63, 1), (233, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (14, 2), (16, 1), (19, 2), (24, 1), (57, 2), (75, 1), (233, 1)], [], [], [], [(0, 2), (2, 1), (6, 1), (7, 2), (8, 1), (14, 2), (16, 1), (18, 1), (19, 1), (20, 1), (24, 2), (57, 1), (63, 2), (233, 2)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (18, 2), (19, 1), (24, 2), (57, 1), (63, 2), (233, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (14, 1), (16, 2), (18, 2), (19, 1), (24, 1), (57, 2), (63, 1), (233, 1)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (18, 2), (19, 1), (24, 2), (57, 1), (63, 2), (233, 2)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 2), (8, 1), (14, 2), (16, 1), (18, 1), (24, 2), (60, 1), (64, 2), (66, 1), (72, 2), (77, 2), (233, 2)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (18, 2), (24, 2), (57, 2), (60, 2), (63, 1), (64, 2), (66, 1), (72, 2), (77, 1), (233, 2)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (14, 1), (16, 2), (19, 2), (24, 2), (57, 2), (60, 2), (63, 1), (64, 2), (66, 1), (72, 2), (77, 1), (233, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (14, 1), (16, 2), (18, 2), (19, 2), (57, 2), (58, 1), (60, 1), (63, 1), (64, 1), (66, 2), (72, 1), (77, 2), (233, 2)], [], [], [(0, 1), (2, 2), (4, 1), (7, 2), (8, 2), (14, 1), (16, 2), (19, 1), (57, 1), (60, 1), (63, 2), (64, 1), (66, 2), (72, 1), (77, 2), (233, 1)], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (14, 2), (16, 2), (19, 1), (57, 1), (60, 1), (63, 2), (64, 1), (66, 2), (72, 1), (77, 2), (233, 1)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (18, 1), (24, 2), (57, 2), (60, 1), (63, 1), (64, 1), (66, 2), (72, 1), (77, 2)], [(2, 1), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (14, 1), (16, 2), (18, 2), (19, 2), (24, 2), (57, 2), (60, 1), (63, 1), (64, 1), (66, 2), (72, 1), (77, 2)], [], [(0, 1), (2, 2), (7, 2), (8, 2), (14, 1), (16, 2), (19, 1), (24, 1), (57, 1), (60, 2), (63, 2), (64, 1), (66, 2), (72, 1), (77, 2)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 2), (8, 1), (14, 2), (16, 1), (18, 1), (19, 1), (24, 1), (57, 1), (60, 2), (63, 2), (64, 2), (66, 2), (72, 1), (77, 1)], [], [(3, 1), (4, 2), (7, 1), (8, 1), (14, 2), (16, 1), (19, 2), (24, 2), (57, 2), (58, 2), (60, 2), (63, 1), (64, 2), (66, 1), (72, 2), (77, 1), (114, 2), (115, 1)], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 1), (14, 2), (16, 1), (18, 1), (19, 1), (20, 2), (24, 1), (57, 1), (60, 1), (63, 2), (64, 1), (66, 2), (72, 1), (77, 2), (236, 1)], [], [], [(7, 2), (8, 2), (14, 1), (16, 2), (18, 1), (19, 1), (57, 1), (60, 2), (63, 2), (64, 2), (66, 1), (72, 2), (77, 1)], [], [(2, 2), (5, 1), (7, 2), (8, 2), (14, 1), (16, 2), (18, 1), (19, 1), (57, 1), (60, 2), (63, 2), (64, 2), (66, 1), (72, 2), (77, 1)], [(3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (14, 2), (16, 1), (18, 2), (19, 2), (57, 2), (60, 1), (63, 1), (64, 1), (66, 2), (72, 1), (77, 2)], [], [], [(2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (14, 2), (16, 1), (17, 1), (18, 1), (19, 1), (57, 1), (60, 2), (63, 2), (64, 2), (66, 1), (72, 2), (77, 1)], [], [(0, 2), (2, 1), (7, 1), (8, 1), (14, 2), (16, 1), (18, 2), (19, 2), (57, 2), (60, 1), (63, 1), (64, 1), (66, 2), (72, 2), (77, 2)], [], [(0, 2), (2, 1), (3, 2), (4, 1), (7, 1), (19, 2), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 1), (72, 2), (77, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 1), (8, 2), (14, 1), (16, 1), (18, 2), (19, 2), (57, 2), (60, 1), (63, 1), (64, 1), (66, 1), (72, 2), (73, 1), (77, 2)], [], [(3, 1), (4, 2), (7, 1), (8, 1), (14, 2), (16, 1), (18, 2), (19, 2), (57, 2), (58, 2), (60, 2), (63, 1), (64, 2), (66, 1), (72, 2), (77, 1), (80, 1)], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (14, 1), (16, 2), (18, 1), (19, 1), (57, 2), (60, 2), (63, 1), (64, 2), (66, 1), (72, 2), (77, 1), (114, 2), (127, 1)], [], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (14, 1), (16, 2), (18, 2), (24, 1), (60, 2), (64, 1), (66, 2), (72, 1), (77, 1), (99, 1), (233, 1)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (14, 1), (16, 2), (18, 2), (24, 1), (60, 2), (64, 1), (66, 2), (72, 1), (77, 1), (233, 1), (392, 1)], [], [(0, 2), (2, 1), (6, 2), (8, 1), (14, 2), (16, 1), (18, 2), (24, 1), (60, 2), (64, 1), (66, 2), (72, 1), (77, 1), (233, 1), (274, 1)], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (14, 1), (16, 2), (18, 2), (19, 1), (57, 1), (233, 2)], [], [(2, 1), (5, 2), (7, 2), (8, 1), (14, 2), (16, 1), (233, 2), (293, 1)], [], [], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 1), (13, 1), (14, 1), (16, 2), (18, 2), (19, 1), (24, 2)], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (14, 1), (16, 1), (18, 2), (19, 1), (57, 1), (63, 2), (114, 2), (130, 1)], [], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (14, 1), (16, 2), (18, 1), (19, 1), (57, 1), (60, 2), (63, 2), (64, 2), (68, 1), (77, 1)], [], [], [(3, 1), (4, 2), (6, 2), (8, 1), (14, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb66 : List (List (Nat × Nat)) := [[(6, 2), (11, 1), (12, 1), (16, 2), (24, 1)], [], [(6, 2), (8, 2), (11, 1), (13, 1), (16, 2), (24, 1), (57, 2), (63, 1), (114, 1)], [], [], [(6, 2), (11, 1), (12, 1), (16, 2), (233, 1)], [], [(8, 2), (11, 1), (13, 1), (16, 2), (57, 2), (63, 1), (233, 1)], [(6, 2), (8, 2), (11, 1), (12, 1), (13, 1), (16, 2), (57, 2), (63, 1), (233, 1)], [], [], [(8, 2), (11, 1), (13, 1), (16, 2), (18, 2), (24, 1), (57, 2), (75, 1), (233, 1)], [(1, 2), (8, 2), (11, 1), (13, 1), (15, 1), (16, 1), (24, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (233, 1)], [], [], [], [(6, 2), (8, 1), (11, 1), (12, 2), (13, 2), (16, 2), (24, 2), (57, 1), (63, 2), (233, 2)], [(6, 1), (8, 2), (11, 1), (12, 2), (13, 2), (16, 2), (24, 2), (57, 1), (63, 2), (233, 2)], [], [], [], [(6, 1), (8, 1), (11, 2), (12, 2), (13, 2), (16, 2), (24, 2), (57, 1), (63, 2), (233, 2)], [(1, 2), (4, 1), (6, 2), (11, 2), (15, 1), (16, 2), (24, 2), (64, 2), (65, 2), (68, 1), (114, 1), (120, 2), (233, 2)], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (6, 1), (11, 2), (15, 1), (16, 2), (24, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1), (233, 2)], [(1, 2), (3, 1), (4, 1), (6, 1), (11, 2), (15, 1), (16, 2), (24, 2), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1), (233, 2)], [], [], [], [(1, 1), (4, 1), (8, 2), (11, 2), (12, 2), (13, 1), (15, 2), (16, 1), (57, 2), (60, 1), (63, 1), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2), (233, 2)], [], [], [(1, 1), (2, 1), (3, 2), (4, 2), (12, 2), (15, 2), (16, 2), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2), (233, 1)], [(1, 1), (4, 2), (6, 2), (8, 1), (13, 2), (15, 2), (16, 2), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2), (233, 1)], [(1, 1), (4, 2), (6, 2), (8, 2), (11, 2), (12, 2), (13, 1), (15, 2), (16, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1), (233, 2)], [], [], [], [(1, 1), (4, 1), (6, 2), (11, 1), (13, 2), (15, 2), (16, 2), (21, 1), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2), (233, 1)], [], [(1, 2), (4, 1), (8, 2), (11, 2), (12, 2), (13, 1), (15, 2), (16, 1), (24, 2), (57, 2), (63, 1), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (12, 2), (15, 2), (16, 2), (24, 1), (57, 1), (58, 1), (63, 2), (64, 1), (65, 1), (68, 2), (114, 1), (120, 2)], [(1, 1), (4, 2), (6, 1), (8, 1), (13, 2), (15, 2), (16, 2), (24, 1), (57, 1), (63, 2), (64, 2), (65, 1), (68, 2), (114, 2), (120, 1)], [(1, 2), (4, 2), (6, 2), (8, 2), (11, 2), (13, 1), (15, 1), (16, 1), (24, 2), (57, 2), (60, 2), (63, 1), (64, 2), (65, 2), (68, 1), (114, 1), (117, 1), (120, 1)], [], [], [], [], [(1, 1), (4, 1), (6, 1), (8, 1), (11, 1), (13, 2), (15, 2), (16, 2), (24, 1), (57, 1), (63, 2), (64, 1), (65, 1), (68, 2), (114, 2), (120, 1), (181, 1)], [], [], [(1, 2), (4, 2), (6, 1), (8, 1), (13, 2), (15, 1), (57, 1), (63, 2), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1)], [(1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (8, 2), (12, 1), (13, 1), (15, 1), (57, 1), (63, 2), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1)], [], [], [], [], [(1, 2), (2, 2), (3, 1), (4, 1), (8, 1), (11, 1), (12, 1), (13, 1), (15, 1), (22, 1), (57, 1), (63, 2), (64, 2), (65, 2), (68, 1), (114, 2), (120, 1)], [], [(1, 2), (4, 1), (6, 1), (8, 2), (12, 1), (13, 1), (15, 1), (57, 2), (63, 1), (64, 1), (65, 2), (68, 2), (114, 1), (120, 2)], [(1, 2), (3, 1), (4, 1), (8, 2), (12, 1), (13, 1), (15, 1), (57, 1), (63, 2), (64, 2), (65, 1), (66, 2), (67, 1), (68, 2), (114, 2), (120, 1)], [(1, 2), (4, 1), (6, 2), (8, 2), (13, 1), (15, 1), (57, 2), (63, 1), (64, 1), (65, 2), (68, 1), (73, 1), (114, 1), (120, 2)], [(1, 2), (4, 2), (12, 1), (15, 1), (57, 2), (60, 2), (63, 1), (64, 2), (65, 2), (68, 1), (71, 1), (114, 2), (120, 1)], [], [], [], [(1, 1), (4, 2), (6, 1), (8, 2), (12, 1), (13, 1), (15, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (114, 1), (120, 1), (137, 1)], [], [], [], [(1, 1), (4, 2), (6, 1), (11, 1), (15, 2), (16, 1), (24, 1), (64, 1), (65, 1), (68, 2), (99, 1), (114, 2), (120, 1), (233, 1)], [], [], [(1, 1), (4, 2), (11, 2), (12, 1), (15, 2), (24, 1), (64, 1), (65, 1), (68, 2), (114, 2), (120, 1), (216, 1), (233, 1)], [(1, 1), (4, 2), (11, 2), (12, 1), (15, 2), (24, 1), (64, 1), (65, 1), (68, 2), (114, 2), (120, 1), (233, 1), (274, 1)], [], [], [(8, 1), (11, 2), (13, 2), (16, 1), (57, 1), (233, 2)], [], [], [(172, 1), (233, 2)], [], [], [], [], [(18, 1), (24, 2)], [], [(6, 1), (8, 1), (11, 2), (13, 2), (57, 1), (63, 2), (114, 2), (130, 1)], [], [], [(3, 2), (6, 1), (57, 1), (63, 2), (64, 2), (66, 1), (114, 2), (120, 1)], [], [(6, 1), (11, 2), (12, 2), (16, 1)], [], [], [], [], [(6, 1), (8, 2), (12, 2), (13, 1)], [], [], []] + +def comb67 : List (List (Nat × Nat)) := [[(7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 1)], [(0, 1), (2, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (18, 1), (67, 1)], [], [], [(0, 2), (2, 1), (6, 2), (7, 1), (8, 1), (10, 2), (11, 2), (15, 2), (16, 1), (18, 1), (57, 2), (67, 1), (233, 1)], [(7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (17, 2), (172, 1)], [(0, 2), (2, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (57, 2), (67, 1), (172, 1)], [], [], [], [(0, 2), (2, 1), (6, 2), (7, 1), (8, 1), (10, 2), (11, 2), (15, 2), (16, 1), (24, 1), (57, 2), (67, 1), (172, 1)], [], [], [(0, 1), (2, 2), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 1), (57, 2), (63, 1), (172, 1)], [], [], [], [(0, 2), (2, 1), (6, 1), (7, 1), (8, 2), (10, 2), (11, 2), (15, 2), (16, 1), (18, 1), (57, 2), (67, 1), (172, 1)], [(0, 2), (2, 1), (6, 1), (7, 2), (8, 2), (10, 1), (11, 1), (15, 1), (16, 2), (18, 2), (57, 1), (67, 2), (172, 2)], [(0, 1), (2, 2), (6, 1), (7, 2), (8, 2), (10, 1), (11, 1), (15, 1), (16, 2), (18, 2), (57, 1), (67, 2), (172, 2)], [], [], [(0, 1), (2, 2), (3, 1), (6, 2), (7, 2), (8, 2), (10, 1), (11, 1), (15, 2), (16, 1), (17, 1), (18, 2), (57, 1), (63, 2), (64, 2), (66, 1), (67, 1), (72, 2), (120, 2), (172, 2)], [(0, 2), (2, 1), (3, 1), (6, 1), (7, 2), (8, 2), (10, 1), (11, 1), (12, 1), (15, 2), (16, 1), (17, 1), (18, 2), (57, 1), (64, 1), (66, 2), (67, 1), (72, 1), (120, 2), (172, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (12, 1), (15, 2), (16, 1), (17, 1), (18, 2), (57, 1), (64, 1), (66, 2), (67, 1), (72, 1), (120, 2), (172, 2)], [(0, 1), (2, 1), (3, 2), (6, 1), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (15, 2), (16, 1), (57, 1), (63, 2), (64, 2), (66, 1), (67, 1), (72, 2), (120, 1), (121, 1), (172, 2)], [], [], [], [], [(0, 2), (3, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (15, 2), (16, 1), (57, 1), (64, 1), (66, 2), (67, 1), (72, 1), (120, 2), (172, 2)], [(3, 2), (15, 2), (16, 1), (17, 1), (57, 2), (64, 2), (66, 1), (67, 2), (72, 2), (120, 1), (172, 1)], [], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 1), (16, 2), (57, 2), (64, 2), (66, 1), (67, 2), (72, 2), (120, 1), (172, 1)], [], [], [(0, 2), (2, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (15, 2), (16, 1), (18, 2), (64, 2), (66, 1), (67, 1), (72, 2), (120, 1)], [], [], [(0, 2), (2, 1), (3, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (12, 1), (15, 2), (16, 1), (18, 2), (64, 2), (66, 1), (67, 1), (72, 2), (120, 1)], [], [], [(3, 2), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (15, 2), (16, 1), (18, 2), (64, 2), (66, 2), (67, 1), (72, 1), (120, 1)], [(0, 1), (2, 2), (3, 2), (7, 2), (9, 2), (10, 1), (12, 1), (15, 1), (16, 2), (18, 1), (57, 2), (64, 2), (66, 1), (67, 2), (72, 2), (117, 1), (120, 1)], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (15, 1), (16, 2), (18, 1), (57, 2), (64, 2), (66, 1), (67, 2), (72, 2), (115, 1), (120, 1)], [], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (15, 1), (16, 2), (18, 1), (57, 2), (64, 2), (66, 1), (67, 2), (72, 2), (120, 1), (174, 1)], [], [], [], [], [], [(0, 2), (3, 2), (5, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (15, 2), (16, 1), (17, 2), (64, 2), (66, 1), (67, 1), (72, 2), (120, 1)], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (15, 1), (16, 2), (17, 1), (64, 1), (66, 2), (67, 2), (72, 1), (120, 2)], [], [(0, 1), (2, 2), (3, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 1), (64, 1), (66, 2), (67, 2), (72, 1), (120, 2)], [], [], [(0, 2), (2, 1), (3, 1), (6, 1), (8, 2), (9, 1), (12, 2), (15, 2), (16, 1), (17, 2), (64, 1), (66, 2), (67, 1), (72, 2), (120, 2)], [(0, 1), (2, 2), (3, 1), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (15, 1), (16, 2), (17, 1), (64, 1), (65, 1), (66, 2), (67, 1), (72, 1), (120, 2)], [], [(3, 1), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (15, 1), (16, 2), (17, 1), (64, 1), (66, 1), (67, 2), (72, 2), (73, 1), (74, 2), (120, 2)], [], [], [], [(3, 2), (7, 1), (8, 1), (10, 2), (11, 2), (15, 1), (16, 2), (17, 1), (63, 2), (64, 2), (66, 1), (67, 2), (72, 2), (120, 1), (127, 1)], [(3, 2), (7, 1), (8, 1), (10, 2), (11, 2), (15, 1), (16, 2), (17, 1), (63, 2), (64, 2), (66, 1), (67, 2), (72, 2), (120, 1), (137, 1)], [], [], [], [], [(0, 2), (2, 1), (3, 2), (6, 1), (7, 1), (8, 1), (10, 2), (11, 2), (15, 1), (16, 2), (17, 2), (18, 1), (57, 2), (63, 1), (64, 1), (66, 2), (67, 2), (72, 1), (120, 1), (157, 1), (172, 1)], [(0, 2), (2, 1), (3, 2), (6, 1), (7, 1), (8, 1), (10, 2), (11, 2), (15, 1), (16, 2), (17, 2), (18, 1), (57, 2), (63, 1), (64, 1), (66, 2), (67, 2), (72, 1), (120, 1), (172, 1), (392, 1)], [(0, 2), (2, 1), (3, 2), (6, 1), (8, 1), (9, 2), (12, 1), (15, 1), (16, 2), (17, 1), (18, 1), (57, 2), (63, 1), (64, 1), (66, 2), (67, 2), (72, 1), (120, 1), (172, 1), (216, 1)], [], [], [], [], [(7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (114, 1), (172, 2)], [(2, 1), (5, 2), (6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (17, 1), (172, 2), (293, 1)], [], [], [], [(6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (18, 2)], [(0, 2), (2, 1), (6, 1), (7, 1), (8, 2), (9, 1), (10, 2), (11, 2), (12, 2), (13, 1), (17, 1), (18, 2)], [], [], [], [(0, 2), (2, 1), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (12, 1), (15, 1), (16, 2), (17, 1), (67, 2), (74, 1)], [(0, 1), (2, 2), (6, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 2), (12, 1), (15, 1), (16, 2), (17, 1), (65, 2), (66, 2), (68, 1), (72, 1)], [], [], [(7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1)], [], [], [], [], [], [], [], []] + +def comb68 : List (List (Nat × Nat)) := [[(9, 2), (11, 1), (14, 1), (16, 2), (24, 1)], [(8, 2), (9, 2), (11, 1), (14, 1), (16, 2), (24, 1), (63, 1)], [], [(8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (57, 2), (63, 1), (172, 1)], [], [(9, 2), (11, 1), (14, 1), (16, 2), (233, 1)], [(3, 1), (8, 2), (9, 2), (11, 1), (14, 1), (16, 2), (57, 2), (63, 1), (233, 1)], [], [], [(8, 2), (9, 1), (11, 2), (14, 2), (16, 1), (18, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [], [], [], [(6, 1), (8, 1), (9, 1), (11, 2), (14, 2), (16, 1), (24, 1), (57, 2), (63, 1), (233, 1)], [], [], [], [(8, 1), (9, 2), (11, 1), (14, 1), (16, 2), (24, 2), (57, 1), (63, 2), (233, 2)], [], [(6, 1), (8, 2), (11, 1), (14, 1), (16, 2), (24, 2), (57, 1), (58, 1), (64, 1), (66, 1), (72, 2), (115, 2), (233, 2)], [(6, 1), (8, 1), (9, 1), (11, 1), (14, 1), (16, 2), (24, 2), (57, 1), (58, 1), (63, 1), (66, 1), (72, 2), (115, 2), (233, 2)], [], [], [(6, 1), (8, 1), (11, 2), (14, 1), (16, 2), (24, 2), (57, 1), (58, 1), (63, 1), (66, 1), (72, 2), (115, 2), (233, 2)], [], [(3, 2), (6, 2), (11, 1), (14, 2), (15, 1), (16, 1), (57, 1), (58, 2), (63, 1), (66, 2), (67, 2), (72, 1), (115, 1), (121, 1), (233, 2)], [], [(6, 1), (8, 1), (9, 2), (11, 2), (14, 2), (16, 1), (58, 2), (63, 1), (66, 2), (72, 1), (115, 2), (233, 2)], [], [(0, 1), (3, 2), (6, 2), (11, 2), (12, 2), (14, 2), (16, 1), (57, 1), (58, 1), (63, 1), (66, 1), (72, 2), (115, 2), (233, 2)], [], [(6, 2), (8, 2), (9, 1), (14, 1), (15, 1), (16, 2), (57, 2), (58, 2), (63, 2), (66, 2), (72, 1), (115, 1), (233, 1)], [(6, 2), (8, 2), (9, 1), (11, 1), (14, 1), (16, 2), (57, 2), (58, 2), (63, 2), (66, 2), (72, 1), (115, 1), (233, 1)], [], [(6, 2), (8, 2), (11, 1), (14, 2), (16, 2), (57, 2), (58, 2), (63, 2), (66, 2), (72, 1), (115, 1), (233, 1)], [], [(6, 1), (7, 1), (8, 1), (11, 1), (14, 2), (16, 1), (24, 2), (58, 2), (63, 1), (66, 2), (72, 1), (115, 1)], [], [(6, 1), (8, 1), (9, 2), (11, 2), (12, 1), (14, 2), (16, 1), (24, 2), (58, 2), (63, 1), (66, 2), (72, 1), (115, 1)], [], [], [(6, 2), (11, 2), (14, 2), (16, 1), (24, 2), (58, 2), (63, 1), (66, 1), (72, 2), (115, 1)], [], [(6, 2), (8, 2), (9, 1), (14, 1), (16, 2), (24, 1), (57, 2), (58, 2), (63, 2), (66, 2), (72, 1), (115, 1), (117, 1)], [], [(3, 2), (6, 2), (8, 2), (9, 1), (11, 1), (14, 1), (16, 2), (24, 1), (58, 2), (63, 2), (64, 2), (66, 2), (72, 1), (115, 1), (120, 1)], [], [(6, 2), (8, 2), (11, 1), (14, 1), (16, 2), (24, 1), (57, 2), (58, 2), (63, 2), (66, 2), (72, 1), (115, 1), (236, 1)], [], [], [], [(1, 1), (3, 2), (6, 2), (9, 2), (11, 2), (58, 2), (63, 1), (66, 2), (72, 1), (115, 1)], [], [], [(6, 2), (7, 2), (8, 2), (9, 1), (10, 1), (11, 1), (58, 1), (63, 2), (66, 1), (72, 2), (115, 2)], [], [(6, 2), (8, 2), (9, 1), (11, 1), (12, 2), (14, 1), (16, 2), (17, 1), (58, 1), (63, 2), (66, 1), (72, 2), (115, 2)], [], [(6, 1), (8, 1), (9, 1), (58, 1), (63, 1), (66, 2), (72, 2), (115, 2)], [], [(6, 1), (8, 1), (9, 1), (11, 1), (15, 2), (58, 1), (63, 1), (66, 1), (67, 1), (72, 2), (115, 2)], [], [(6, 2), (7, 2), (9, 1), (11, 1), (58, 1), (63, 1), (66, 1), (71, 1), (72, 2), (115, 2)], [], [(3, 1), (6, 1), (8, 1), (9, 2), (11, 2), (14, 2), (58, 1), (63, 1), (64, 1), (66, 1), (72, 2), (115, 2), (120, 2), (130, 1)], [], [(6, 2), (11, 2), (14, 2), (16, 1), (18, 2), (57, 1), (58, 1), (63, 1), (66, 1), (72, 2), (115, 1), (137, 1)], [], [], [], [], [(0, 2), (3, 1), (6, 1), (8, 2), (11, 2), (12, 1), (14, 1), (16, 1), (24, 1), (57, 2), (58, 2), (64, 2), (66, 2), (72, 1), (115, 1), (157, 1), (233, 1)], [(3, 1), (6, 1), (8, 2), (9, 2), (11, 2), (14, 2), (16, 1), (24, 1), (57, 2), (58, 1), (66, 2), (72, 1), (115, 2), (120, 2), (233, 1), (392, 1)], [], [(6, 2), (8, 1), (9, 2), (24, 1), (57, 2), (58, 2), (64, 2), (66, 2), (72, 1), (115, 1), (233, 1), (274, 1)], [], [], [], [(6, 2), (8, 1), (9, 1), (11, 2), (14, 2), (16, 1), (114, 1), (233, 2)], [(3, 1), (6, 2), (8, 1), (11, 2), (14, 2), (16, 1), (58, 2), (64, 1), (115, 1), (120, 2), (233, 2), (293, 1)], [], [], [], [(8, 1), (9, 1), (11, 2), (14, 2), (16, 1), (24, 2)], [(9, 1), (11, 2), (13, 1), (14, 2), (16, 1), (24, 2)], [], [], [], [(8, 1), (9, 1), (11, 2), (14, 2), (63, 2), (73, 1)], [(8, 1), (11, 2), (63, 2), (68, 1)], [], [], [(9, 1), (11, 2), (14, 2), (16, 1)], [], [], [], [], [], [], [], []] + +def comb69 : List (List (Nat × Nat)) := [[(0, 2), (4, 1), (13, 1), (16, 2), (24, 1)], [(0, 2), (4, 1), (8, 2), (13, 1), (16, 2), (24, 1), (63, 1)], [], [], [], [(0, 2), (4, 1), (13, 1), (16, 2), (233, 1)], [(4, 1), (8, 2), (13, 1), (16, 2), (57, 2), (63, 1), (233, 1)], [], [(0, 2), (4, 1), (8, 2), (13, 2), (16, 2), (57, 2), (63, 1), (233, 1)], [], [], [], [(0, 2), (4, 1), (8, 2), (13, 2), (16, 1), (24, 1), (57, 2), (63, 1), (64, 2), (65, 2), (68, 1), (77, 1), (233, 1)], [], [], [(2, 2), (4, 1), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (16, 1), (20, 1), (24, 1), (57, 2), (63, 1), (233, 1)], [], [], [(0, 2), (4, 1), (8, 1), (13, 1), (16, 2), (24, 2), (57, 1), (63, 2), (233, 2)], [], [], [(0, 1), (4, 2), (8, 1), (13, 1), (16, 2), (24, 2), (57, 1), (63, 2), (233, 2)], [(0, 1), (4, 2), (11, 1), (13, 1), (16, 2), (24, 2), (57, 1), (60, 1), (64, 1), (65, 2), (68, 1), (117, 2), (233, 2)], [(0, 1), (4, 2), (8, 2), (9, 1), (11, 1), (13, 1), (16, 2), (24, 2), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (117, 2), (233, 2)], [], [(2, 1), (4, 2), (8, 2), (9, 1), (11, 1), (12, 2), (13, 2), (16, 2), (24, 2), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (117, 2), (233, 2)], [], [], [(0, 1), (2, 2), (4, 2), (9, 2), (11, 2), (12, 1), (13, 1), (16, 1), (57, 1), (60, 2), (65, 2), (66, 1), (67, 2), (68, 1), (117, 1), (121, 1), (233, 2)], [(0, 1), (4, 2), (8, 2), (11, 1), (13, 2), (16, 1), (60, 2), (63, 1), (65, 1), (68, 2), (117, 2), (233, 2)], [], [], [], [], [], [(8, 1), (11, 2), (13, 1), (16, 2), (57, 2), (60, 2), (63, 2), (65, 1), (68, 2), (117, 1), (233, 1)], [], [], [(8, 1), (9, 2), (11, 2), (13, 1), (16, 2), (21, 1), (57, 2), (60, 2), (63, 2), (65, 1), (68, 2), (117, 1), (233, 1)], [(0, 1), (4, 2), (7, 1), (8, 2), (11, 1), (13, 2), (16, 1), (24, 2), (60, 2), (63, 1), (65, 1), (68, 2), (117, 1)], [], [], [], [(0, 1), (4, 2), (8, 2), (11, 2), (13, 2), (16, 1), (24, 2), (60, 2), (63, 1), (65, 2), (68, 1), (117, 1)], [], [], [], [(8, 1), (9, 2), (11, 2), (13, 1), (16, 2), (24, 1), (57, 2), (60, 2), (63, 2), (65, 1), (68, 2), (115, 1), (117, 1)], [(0, 2), (8, 1), (11, 2), (13, 1), (16, 2), (24, 1), (60, 2), (63, 2), (64, 2), (65, 1), (68, 2), (117, 1), (120, 1)], [], [], [(0, 2), (8, 1), (11, 2), (13, 1), (16, 2), (24, 1), (60, 2), (63, 2), (64, 2), (65, 1), (68, 2), (117, 1), (181, 1)], [], [(0, 1), (4, 2), (8, 2), (9, 2), (11, 2), (12, 1), (13, 2), (60, 2), (63, 1), (65, 1), (68, 2), (117, 1)], [], [], [(8, 1), (11, 2), (60, 1), (63, 2), (65, 2), (68, 1), (117, 2)], [(7, 2), (8, 1), (10, 1), (11, 2), (60, 1), (63, 2), (65, 2), (68, 1), (117, 2)], [], [], [(7, 2), (8, 1), (11, 2), (22, 1), (60, 1), (63, 2), (65, 2), (68, 1), (117, 2)], [], [(8, 2), (11, 1), (60, 1), (63, 1), (65, 2), (68, 2), (117, 2)], [(0, 2), (2, 1), (8, 1), (9, 1), (11, 1), (12, 2), (13, 1), (60, 1), (63, 2), (65, 1), (66, 2), (67, 1), (68, 2), (117, 2)], [], [], [(7, 2), (8, 2), (11, 2), (60, 1), (63, 1), (65, 2), (68, 1), (80, 1), (117, 2)], [(0, 1), (8, 2), (11, 1), (13, 2), (60, 1), (63, 1), (64, 1), (65, 2), (68, 1), (117, 2), (120, 2), (130, 1)], [(6, 2), (11, 2), (13, 2), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (117, 1), (127, 1)], [], [], [], [], [], [(0, 2), (4, 1), (6, 2), (8, 1), (11, 2), (13, 2), (16, 1), (24, 1), (57, 2), (60, 2), (64, 2), (65, 1), (68, 2), (117, 1), (157, 1), (233, 1)], [], [(0, 1), (4, 2), (11, 2), (24, 1), (57, 2), (60, 2), (64, 2), (65, 1), (68, 2), (117, 1), (216, 1), (233, 1)], [(0, 1), (4, 2), (11, 2), (24, 1), (57, 2), (60, 2), (64, 2), (65, 1), (68, 2), (117, 1), (233, 1), (274, 1)], [], [], [], [(0, 1), (4, 2), (6, 2), (8, 1), (13, 2), (16, 1), (114, 1), (233, 2)], [], [(172, 1), (233, 2)], [], [], [(0, 1), (4, 2), (8, 1), (13, 2), (16, 1), (24, 2)], [], [(18, 1), (24, 2)], [], [], [(0, 1), (4, 2), (8, 1), (13, 2), (63, 2), (73, 1)], [], [(0, 1), (2, 2), (8, 1), (9, 2), (12, 1), (13, 2), (63, 2), (66, 1)], [], [(0, 1), (4, 2), (13, 2), (16, 1)], [], [(6, 1), (8, 2)], [], [], [], [], [], []] + +def comb70 : List (List (Nat × Nat)) := [[], [], [], [], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (13, 2), (15, 1), (18, 2), (21, 1), (34, 2), (57, 1), (114, 1), (172, 2), (233, 2), (293, 1)], [(2, 1), (3, 2), (4, 1), (6, 2), (8, 1), (9, 2), (11, 1), (13, 2), (15, 1), (18, 2), (21, 1), (34, 2), (114, 1), (172, 2), (233, 2), (293, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 1), (9, 2), (11, 1), (13, 2), (15, 1), (18, 2), (21, 1), (34, 2), (57, 1), (172, 2), (233, 2), (293, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (7, 2), (8, 1), (9, 2), (11, 1), (15, 1), (21, 1), (22, 2), (34, 2), (57, 1), (114, 1), (172, 2), (233, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (13, 2), (15, 1), (21, 1), (34, 2), (57, 1), (114, 1), (172, 1), (233, 2), (293, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (13, 2), (15, 1), (18, 2), (21, 1), (24, 1), (34, 2), (57, 1), (114, 1), (172, 2), (233, 1), (293, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (18, 2), (21, 1), (22, 2), (34, 2), (57, 2), (75, 1), (114, 2), (172, 1), (233, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (11, 1), (12, 2), (15, 1), (21, 1), (22, 1), (34, 2), (57, 2), (63, 1), (64, 2), (77, 1), (172, 1), (233, 1), (293, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (21, 1), (22, 2), (34, 2), (57, 2), (63, 1), (172, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (21, 1), (22, 2), (34, 2), (57, 2), (114, 2), (172, 1), (233, 1)], [(1, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (9, 2), (11, 1), (13, 2), (15, 1), (20, 1), (21, 1), (22, 1), (34, 2), (57, 2), (172, 1), (233, 1), (293, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (21, 1), (22, 2), (34, 2), (57, 2), (233, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (9, 2), (11, 1), (13, 2), (15, 1), (21, 1), (22, 2), (34, 2), (57, 2), (172, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (21, 1), (22, 2), (34, 2), (114, 2), (233, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 2), (11, 1), (13, 2), (15, 1), (18, 1), (21, 1), (22, 1), (34, 2), (233, 1), (293, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 2), (11, 1), (13, 2), (15, 1), (18, 1), (21, 1), (22, 1), (34, 2), (172, 1), (293, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 2), (11, 1), (13, 2), (15, 1), (18, 1), (21, 1), (22, 1), (34, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (9, 1), (11, 1), (13, 2), (15, 1), (21, 2), (22, 1), (34, 2), (63, 2), (64, 1), (114, 2), (172, 1), (233, 1), (293, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 2), (11, 1), (13, 2), (15, 1), (21, 2), (22, 1), (34, 2), (114, 2), (172, 1), (233, 1), (293, 2)], [(0, 1), (5, 2), (9, 1), (11, 2), (13, 2), (15, 1), (21, 2), (22, 1), (34, 2), (57, 2), (172, 1), (233, 1), (293, 2)], [(1, 1), (2, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (18, 2), (21, 2), (22, 2), (34, 2), (57, 2), (114, 2), (172, 1), (233, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (18, 2), (21, 2), (22, 2), (34, 2), (57, 2), (114, 2), (172, 2), (233, 1), (293, 2)], [(1, 1), (5, 2), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (13, 2), (15, 1), (18, 2), (21, 2), (22, 2), (34, 2), (57, 2), (114, 2), (172, 1), (233, 2), (293, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 1), (11, 2), (18, 2), (21, 2), (22, 2), (57, 2), (63, 2), (121, 1), (172, 2), (233, 2)], [(9, 1), (11, 2), (18, 1), (21, 2), (60, 1), (172, 2), (233, 2), (293, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (9, 1), (11, 2), (18, 1), (21, 2), (58, 1), (233, 2)], [(1, 2), (5, 1), (7, 2), (8, 1), (9, 1), (11, 2), (18, 2), (21, 2), (22, 2), (57, 1), (114, 1), (172, 2), (233, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (9, 1), (11, 2), (18, 1), (21, 2), (57, 1), (233, 2)], [(1, 2), (4, 1), (6, 2), (7, 1), (9, 1), (11, 2), (18, 1), (21, 2), (57, 1), (172, 2)], [(6, 2), (8, 1), (9, 1), (11, 2), (13, 2), (15, 1), (18, 1), (21, 2), (114, 1), (172, 2), (233, 2), (293, 1)], [(6, 2), (9, 1), (18, 1), (21, 2), (114, 1), (172, 2)], [(1, 1), (5, 2), (7, 2), (8, 1), (12, 1), (13, 2), (21, 2), (22, 1), (233, 2), (293, 1)], [(1, 1), (5, 2), (6, 1), (7, 2), (13, 2), (14, 1), (21, 2), (22, 1), (172, 2), (293, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (6, 1), (8, 1), (13, 1), (15, 2), (18, 2), (22, 1), (34, 1), (63, 1), (114, 2), (121, 2), (172, 2), (233, 2), (293, 2), (314, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (9, 1), (11, 2), (13, 2), (14, 2), (15, 2), (18, 2), (22, 1), (34, 1), (44, 1)], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (13, 2), (15, 2), (18, 2), (22, 1), (34, 1), (63, 1), (64, 2), (99, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (9, 1), (13, 2), (14, 2), (15, 2), (18, 2), (22, 1), (34, 1), (57, 2), (63, 1), (64, 2), (114, 1), (157, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (11, 1), (13, 1), (15, 1), (34, 2), (57, 2), (63, 1), (64, 2), (293, 1), (392, 1)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (13, 2), (14, 2), (15, 2), (18, 1), (22, 2), (34, 1), (57, 2), (63, 1), (64, 2), (172, 1), (216, 1)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (9, 1), (12, 2), (13, 2), (15, 2), (18, 1), (22, 2), (34, 1), (57, 2), (63, 1), (64, 2), (233, 1), (274, 1)], [(1, 1), (2, 1), (5, 1), (7, 2), (8, 1), (20, 2), (22, 2), (57, 2), (75, 2), (114, 1), (172, 1), (233, 1), (293, 1), (470, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb71 : List (List (Nat × Nat)) := [[(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (19, 1), (20, 1), (24, 1), (57, 1), (58, 1), (64, 2), (66, 1), (75, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2), (470, 2)], [(0, 1), (2, 2), (6, 2), (7, 2), (8, 2), (13, 1), (18, 2), (19, 1), (24, 2), (58, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (19, 1), (20, 1), (24, 1), (57, 1), (58, 1), (64, 2), (66, 1), (75, 1), (117, 1), (172, 2), (181, 1), (291, 2), (470, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (18, 2), (19, 1), (20, 1), (24, 1), (57, 1), (58, 1), (64, 2), (66, 1), (75, 1), (114, 2), (117, 1), (181, 1), (291, 2), (470, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (19, 1), (20, 1), (57, 1), (58, 1), (64, 2), (66, 1), (75, 1), (114, 2), (117, 1), (172, 2), (181, 1), (233, 1), (291, 2), (470, 2)], [], [], [], [], [], [], [(0, 1), (2, 2), (6, 2), (7, 2), (19, 1), (24, 1), (57, 1), (58, 1), (64, 2), (66, 1), (75, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 2), (2, 1), (6, 1), (8, 1), (13, 2), (18, 1), (24, 1), (57, 1), (58, 1), (60, 2), (63, 1), (64, 1), (66, 2), (77, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (7, 2), (18, 1), (19, 1), (57, 1), (58, 1), (63, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (8, 2), (13, 1), (19, 1), (20, 2), (24, 2), (58, 1), (64, 2), (66, 1), (75, 2), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2), (470, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (24, 2), (58, 1), (64, 2), (66, 1), (75, 2), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2), (470, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 2), (13, 1), (18, 2), (19, 1), (20, 2), (24, 2), (58, 1), (64, 2), (66, 1), (75, 2), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2), (470, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (13, 1), (19, 1), (20, 2), (24, 1), (58, 1), (64, 2), (66, 1), (75, 2), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2), (470, 1)], [(0, 1), (2, 2), (6, 2), (7, 2), (19, 1), (24, 1), (57, 2), (58, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (7, 2), (8, 1), (13, 2), (19, 1), (24, 1), (57, 2), (58, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (7, 2), (8, 1), (13, 2), (18, 1), (19, 1), (57, 2), (58, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(3, 2), (4, 1), (7, 1), (19, 2), (57, 2), (58, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (181, 1), (291, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (19, 1), (20, 2), (24, 2), (57, 1), (58, 1), (63, 2), (64, 2), (66, 1), (75, 2), (114, 2), (117, 1), (172, 1), (181, 2), (291, 2), (470, 1)], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 2), (9, 1), (13, 2), (18, 1), (19, 1), (24, 1), (57, 2), (58, 1), (64, 1), (66, 2), (114, 2), (117, 1), (172, 1), (181, 2), (291, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (19, 1), (20, 2), (24, 2), (58, 1), (64, 1), (66, 2), (75, 2), (114, 2), (117, 1), (172, 1), (181, 2), (291, 2), (470, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (8, 2), (13, 1), (19, 1), (20, 2), (24, 2), (58, 1), (64, 1), (66, 2), (75, 2), (114, 2), (117, 1), (172, 1), (181, 2), (291, 2), (470, 1)], [(0, 2), (2, 1), (3, 1), (4, 2), (7, 1), (18, 1), (20, 2), (24, 2), (58, 1), (64, 1), (66, 2), (75, 2), (114, 2), (117, 1), (172, 1), (181, 2), (291, 2), (470, 1)], [(0, 2), (3, 2), (4, 1), (5, 1), (7, 1), (20, 2), (58, 1), (64, 1), (66, 2), (75, 2), (114, 2), (117, 1), (172, 1), (181, 2), (291, 2), (470, 1)], [], [], [], [], [], [], [], [], [], [], [], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (13, 2), (19, 1), (20, 1), (24, 1), (57, 2), (64, 1), (66, 2), (75, 1), (172, 1), (181, 2), (470, 2)], [(0, 2), (1, 1), (2, 1), (6, 1), (7, 2), (18, 2), (19, 1), (24, 2), (64, 1), (66, 2), (172, 1), (181, 2)], [(2, 1), (24, 2), (64, 1), (66, 2), (172, 1), (181, 2)], [(3, 1), (18, 2), (64, 1), (66, 2), (172, 1), (181, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (19, 1), (20, 1), (24, 1), (57, 1), (60, 1), (64, 1), (66, 2), (75, 1), (172, 1), (181, 2), (470, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (13, 2), (18, 1), (20, 1), (24, 1), (57, 1), (58, 1), (64, 1), (66, 2), (75, 1), (172, 1), (181, 2), (470, 2)], [(3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (13, 2), (20, 1), (24, 2), (57, 1), (64, 1), (75, 1), (172, 1), (181, 2), (470, 2)], [(0, 2), (2, 1), (6, 2), (7, 2), (8, 2), (13, 1), (18, 2), (19, 1), (24, 2), (64, 1), (66, 2), (114, 2), (117, 1), (172, 1), (181, 2)], [(3, 1), (8, 1), (9, 2), (24, 2), (64, 1), (66, 2), (114, 2), (115, 1), (172, 1), (181, 2)], [(6, 1), (18, 2), (114, 2), (120, 1), (172, 1), (181, 2)], [(0, 2), (2, 1), (3, 1), (9, 2), (13, 1), (19, 1), (20, 2), (24, 2), (64, 1), (66, 2), (174, 1), (181, 2)], [(0, 2), (2, 1), (3, 1), (9, 2), (13, 1), (18, 2), (19, 1), (20, 2), (64, 1), (66, 2), (172, 1), (181, 2), (233, 2), (236, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [(1, 2), (3, 1), (4, 2), (6, 2), (18, 1), (19, 1), (20, 2), (51, 1), (57, 2), (58, 2), (75, 2), (114, 1), (117, 2), (291, 1), (470, 1)], [], [(6, 2), (7, 2), (19, 1), (44, 1), (57, 2), (58, 1), (114, 2), (117, 1), (291, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (13, 2), (18, 1), (19, 1), (20, 1), (24, 2), (57, 2), (58, 1), (63, 1), (64, 2), (66, 1), (75, 1), (99, 1), (114, 2), (117, 1), (291, 2), (470, 2)], [(0, 1), (2, 2), (7, 2), (19, 1), (57, 1), (58, 1), (63, 1), (64, 2), (66, 1), (114, 1), (117, 1), (157, 1), (291, 2)], [(7, 1), (8, 2), (13, 1), (19, 2), (57, 1), (58, 1), (63, 1), (114, 2), (117, 2), (120, 2), (291, 1), (392, 1)], [(0, 1), (2, 2), (6, 2), (7, 2), (18, 1), (19, 1), (57, 1), (58, 1), (63, 1), (64, 2), (66, 1), (114, 2), (117, 1), (172, 2), (216, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (7, 2), (19, 1), (24, 1), (57, 1), (58, 1), (63, 1), (64, 2), (66, 1), (114, 2), (117, 1), (233, 2), (274, 1), (291, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb72 : List (List (Nat × Nat)) := [[], [(0, 2), (2, 2), (4, 2), (6, 2), (7, 2), (9, 1), (11, 2), (12, 2), (18, 1), (21, 1), (22, 1), (34, 2), (57, 1), (63, 2), (66, 2), (68, 1), (73, 1)], [(0, 2), (2, 2), (4, 2), (6, 2), (7, 2), (9, 1), (11, 2), (12, 2), (18, 1), (21, 1), (22, 1), (34, 2), (57, 1), (63, 2), (66, 2), (68, 1), (130, 1)], [(0, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (21, 2), (22, 1), (34, 2), (57, 1), (63, 2), (66, 1), (68, 1), (73, 1), (114, 2), (130, 1), (172, 1)], [(0, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (21, 2), (22, 1), (34, 2), (57, 1), (63, 1), (66, 2), (68, 1), (73, 1), (114, 2), (130, 1), (233, 1)], [], [(0, 2), (4, 2), (6, 2), (7, 2), (9, 1), (11, 2), (12, 1), (18, 1), (21, 1), (22, 1), (34, 2), (57, 1), (63, 1), (66, 1), (114, 1), (130, 2)], [(0, 1), (2, 1), (3, 2), (4, 2), (7, 2), (8, 2), (9, 2), (11, 2), (12, 1), (18, 1), (21, 1), (22, 1), (34, 2), (57, 2), (63, 1), (66, 1), (73, 2)], [(0, 1), (2, 1), (3, 2), (4, 2), (7, 2), (8, 2), (9, 2), (11, 2), (12, 1), (18, 1), (21, 1), (22, 1), (34, 2), (57, 2), (63, 1), (66, 1), (68, 2)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 2), (11, 2), (18, 1), (21, 2), (22, 1), (34, 2), (57, 2), (63, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 2), (11, 2), (21, 2), (22, 1), (24, 1), (34, 2), (57, 2), (66, 1)], [], [], [], [(0, 1), (3, 2), (6, 1), (7, 2), (9, 2), (11, 2), (12, 2), (18, 2), (22, 1), (34, 2), (57, 2), (63, 1), (66, 1), (73, 2), (114, 1), (130, 2)], [(0, 1), (1, 1), (3, 2), (4, 2), (6, 2), (7, 1), (9, 2), (12, 2), (15, 2), (18, 1), (20, 1), (22, 1), (34, 2), (57, 2), (63, 1), (66, 1), (68, 2), (114, 1), (130, 2)], [(0, 1), (2, 1), (3, 2), (4, 2), (7, 2), (8, 2), (9, 2), (11, 2), (12, 1), (18, 1), (21, 1), (22, 1), (34, 2), (57, 2), (63, 1), (114, 1), (130, 2)], [(0, 1), (2, 1), (3, 2), (4, 2), (6, 2), (7, 2), (9, 2), (11, 2), (12, 1), (18, 1), (21, 1), (22, 1), (34, 2), (57, 2), (66, 1), (114, 1), (130, 2)], [(0, 1), (2, 1), (3, 2), (4, 2), (7, 2), (8, 2), (9, 2), (11, 2), (12, 1), (18, 1), (21, 1), (22, 1), (34, 2), (63, 1), (73, 2)], [(3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (11, 2), (18, 1), (21, 1), (22, 1), (34, 2), (63, 1), (68, 2)], [(3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (11, 2), (18, 1), (21, 1), (22, 1), (34, 2), (66, 1), (68, 2)], [(3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (11, 2), (18, 1), (21, 1), (22, 1), (34, 2)], [(0, 1), (3, 2), (6, 2), (7, 1), (9, 1), (12, 2), (18, 1), (22, 2), (34, 2), (57, 2), (63, 1), (64, 1), (66, 1), (68, 2), (73, 2), (114, 1), (130, 2)], [], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (12, 1), (21, 1), (22, 2), (63, 1), (66, 1), (68, 2), (73, 2), (114, 2), (121, 1)], [(0, 2), (2, 2), (4, 2), (6, 2), (7, 1), (9, 1), (12, 2), (18, 1), (22, 2), (34, 2), (57, 1), (60, 1), (63, 1), (66, 1), (73, 2), (114, 1), (130, 2)], [(0, 1), (3, 2), (6, 2), (7, 1), (9, 1), (12, 2), (18, 1), (22, 2), (34, 2), (57, 1), (58, 1), (63, 1), (66, 2), (68, 2), (73, 2), (114, 1), (130, 2)], [], [], [], [], [], [], [], [], [(0, 1), (3, 2), (7, 2), (8, 2), (9, 2), (11, 2), (12, 2), (18, 1), (22, 2), (34, 2), (57, 2), (63, 2), (66, 2), (114, 2), (130, 1)], [(0, 1), (1, 1), (3, 2), (4, 2), (7, 1), (8, 2), (9, 2), (12, 2), (18, 1), (22, 2), (34, 2), (57, 1), (63, 2), (66, 2), (73, 1)], [(0, 2), (2, 2), (3, 2), (6, 2), (7, 1), (9, 1), (18, 1), (22, 2), (34, 2), (57, 1), (63, 2)], [(0, 2), (2, 1), (6, 2), (7, 1), (9, 1), (18, 1), (22, 2), (34, 2), (57, 1), (66, 2)], [], [], [], [], [], [], [], [], [], [(0, 2), (3, 2), (4, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (12, 1), (21, 1), (22, 2), (57, 1), (63, 2), (66, 2), (73, 1), (114, 2), (130, 1)], [(0, 2), (2, 2), (4, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (21, 1), (22, 2), (57, 1), (63, 2), (66, 2), (68, 1), (114, 2), (130, 1)], [(0, 2), (2, 2), (3, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (21, 1), (22, 2), (57, 1), (63, 2), (114, 2), (130, 1)], [(0, 2), (2, 1), (4, 2), (5, 1), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (21, 1), (22, 2), (57, 1), (66, 2), (114, 2), (130, 1)], [(2, 1), (4, 2), (7, 1), (12, 2), (21, 1), (22, 2), (63, 2), (73, 1)], [(2, 1), (4, 2), (6, 1), (8, 2), (10, 1), (12, 2), (21, 1), (22, 2), (66, 2), (73, 1)], [(1, 2), (2, 1), (7, 1), (11, 2), (12, 2), (15, 1), (21, 1), (22, 2), (63, 2), (68, 1)], [(3, 1), (4, 2), (7, 1), (11, 2), (12, 2), (17, 1), (21, 1), (22, 2), (66, 2), (68, 1)], [], [], [], [], [], [], [], [], [], [], [(1, 2), (2, 1), (3, 1), (4, 2), (6, 2), (8, 2), (11, 2), (17, 2), (18, 2), (21, 1), (34, 1), (51, 1), (57, 1), (63, 2), (66, 2), (68, 2), (73, 2), (114, 1), (130, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 1), (11, 2), (12, 1), (17, 2), (114, 1), (121, 2), (314, 1)], [], [(2, 1), (3, 1), (4, 1), (6, 2), (9, 1), (11, 1), (12, 2), (18, 1), (21, 2), (34, 2), (64, 2), (99, 1), (114, 2), (130, 1)], [(2, 1), (3, 1), (4, 1), (6, 2), (9, 1), (11, 1), (12, 2), (18, 1), (21, 2), (34, 2), (64, 2), (73, 1), (114, 2), (157, 1)], [(2, 1), (3, 1), (4, 1), (6, 1), (9, 1), (11, 1), (12, 2), (18, 1), (21, 2), (34, 2), (64, 2), (68, 1), (392, 1)], [(3, 1), (4, 2), (8, 1), (9, 1), (11, 1), (18, 2), (21, 1), (34, 2), (64, 2), (66, 1), (172, 2), (216, 1)], [(3, 1), (4, 2), (8, 1), (9, 1), (11, 1), (18, 2), (21, 1), (34, 2), (63, 1), (64, 2), (233, 2), (274, 1)], [], [(0, 1), (2, 1), (3, 1), (8, 1), (9, 2), (12, 1), (57, 2), (63, 1), (66, 1), (68, 1), (73, 1), (114, 2), (130, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb73 : List (List (Nat × Nat)) := [[(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (16, 1), (18, 2), (57, 1), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (114, 1), (130, 2)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (18, 2), (57, 1), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (114, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (18, 2), (57, 1), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (172, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (18, 2), (57, 1), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (233, 1)], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (16, 2), (18, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1)], [], [(1, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (16, 1), (18, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (114, 2), (130, 1)], [(1, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (12, 1), (16, 2), (18, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (114, 2), (130, 1)], [(1, 2), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 2), (11, 1), (12, 1), (16, 1), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (114, 2), (130, 1)], [(1, 2), (3, 2), (4, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 1), (16, 1), (18, 2), (24, 1), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1), (114, 2), (130, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (16, 1), (18, 1), (57, 1), (58, 1), (63, 1), (71, 1), (74, 2), (75, 1), (80, 1), (114, 1), (130, 2)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (16, 2), (18, 1), (57, 2), (58, 1), (60, 2), (63, 1), (71, 1), (74, 2), (77, 1), (80, 1), (114, 1), (130, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (16, 1), (18, 2), (57, 1), (58, 1), (63, 2), (71, 1), (74, 2), (80, 1), (114, 1), (130, 2)], [], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (18, 2), (57, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (16, 1), (18, 2), (57, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (9, 1), (11, 2), (12, 2), (16, 1), (18, 2), (57, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (12, 2), (16, 1), (18, 2), (57, 2), (58, 1), (63, 1), (71, 1), (74, 2), (80, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (16, 1), (18, 1), (57, 2), (63, 1), (80, 2), (114, 1), (130, 2)], [], [], [], [], [(1, 2), (6, 1), (7, 1), (8, 2), (16, 2), (18, 1), (57, 1), (60, 1), (67, 2), (80, 2), (114, 1), (121, 1), (130, 1)], [], [], [(6, 2), (7, 1), (8, 2), (18, 1), (63, 1), (80, 2)], [(0, 1), (1, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (12, 1), (16, 2), (18, 1), (63, 1), (80, 2)], [(0, 1), (1, 2), (2, 2), (4, 1), (6, 2), (7, 1), (9, 2), (12, 1), (16, 2), (18, 1), (63, 1), (80, 2)], [], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (16, 1), (18, 1), (57, 2), (58, 1), (71, 1), (74, 2), (80, 2)], [], [], [], [(1, 2), (7, 1), (8, 1), (16, 1), (18, 1), (57, 1), (60, 1), (63, 1), (80, 2), (114, 1), (130, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (8, 1), (11, 2), (16, 1), (18, 1), (57, 1), (58, 1), (63, 1), (80, 2), (114, 1), (130, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (11, 2), (16, 1), (18, 1), (57, 2), (64, 1), (80, 2), (114, 1), (130, 2)], [], [], [], [], [], [], [(0, 2), (2, 1), (8, 2), (9, 1), (12, 2), (18, 1), (58, 1), (71, 1), (74, 2), (80, 2), (114, 2), (130, 1)], [(0, 2), (2, 1), (8, 2), (11, 1), (16, 2), (18, 1), (58, 1), (71, 1), (74, 2), (80, 2), (114, 2), (130, 1)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (8, 2), (16, 2), (18, 1), (58, 1), (71, 1), (74, 2), (80, 2), (114, 2), (130, 1)], [(0, 2), (5, 1), (16, 2), (18, 1), (58, 1), (71, 1), (74, 2), (80, 2), (114, 2), (130, 1)], [], [], [], [], [], [(6, 2), (8, 2), (11, 1), (18, 1), (57, 2), (58, 1), (63, 1), (64, 2), (66, 1), (71, 1), (74, 2), (80, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (8, 2), (18, 1), (58, 1), (60, 2), (65, 1), (71, 1), (74, 2), (80, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 2), (18, 1), (58, 1), (60, 2), (67, 1), (71, 1), (74, 2), (80, 2)], [(8, 2), (11, 1), (16, 2), (18, 1), (57, 2), (58, 1), (63, 1), (64, 2), (71, 1), (73, 1), (74, 2), (80, 2)], [(6, 2), (11, 1), (16, 2), (18, 1), (71, 1), (80, 2)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (51, 1), (57, 2), (58, 1), (63, 2), (71, 1), (74, 2)], [(1, 2), (3, 1), (4, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (16, 2), (57, 2), (58, 2), (60, 2), (63, 2), (67, 1), (71, 2), (74, 1), (114, 2), (121, 2), (130, 2), (314, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (12, 2), (44, 1), (57, 2), (58, 2), (63, 1), (71, 2), (74, 1), (114, 2), (130, 1)], [], [(1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (12, 2), (16, 1), (57, 2), (58, 2), (63, 1), (71, 2), (74, 1), (114, 2), (157, 1)], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (6, 2), (7, 1), (9, 1), (11, 1), (12, 2), (57, 2), (58, 1), (63, 1), (71, 2), (74, 1), (392, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (57, 2), (58, 2), (63, 1), (71, 2), (74, 1), (172, 2), (216, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 1), (8, 1), (57, 2), (58, 2), (63, 1), (71, 2), (74, 1), (233, 2), (274, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb74 : List (List (Nat × Nat)) := [[(2, 2), (3, 2), (4, 1), (15, 1), (16, 2), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 2), (3, 2), (4, 1), (15, 1), (16, 1), (18, 2), (63, 1), (67, 2), (73, 1), (121, 1), (137, 1)], [], [(2, 2), (3, 2), (4, 1), (15, 1), (16, 1), (18, 2), (57, 2), (63, 1), (67, 2), (73, 1), (121, 1), (137, 1), (172, 1)], [(2, 1), (4, 1), (15, 1), (16, 1), (18, 2), (57, 2), (63, 1), (67, 2), (73, 1), (121, 1), (137, 1), (233, 1)], [(2, 2), (6, 1), (12, 2), (15, 1), (16, 1), (18, 2), (57, 1), (63, 1), (67, 2), (73, 2), (121, 1), (137, 1)], [(2, 2), (3, 1), (6, 1), (12, 2), (15, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [], [(2, 2), (3, 1), (4, 2), (6, 1), (12, 2), (15, 1), (16, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 2), (6, 1), (12, 2), (15, 1), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 1), (3, 1), (6, 1), (12, 2), (15, 1), (18, 2), (24, 1), (63, 1), (67, 2), (121, 1), (137, 1)], [], [(2, 2), (3, 1), (4, 2), (6, 2), (12, 1), (15, 1), (16, 2), (18, 1), (63, 1), (67, 2), (73, 2), (77, 1), (121, 1), (137, 1)], [(2, 1), (3, 1), (6, 1), (12, 2), (15, 1), (16, 1), (18, 2), (63, 2), (67, 2), (73, 2), (121, 1), (137, 1)], [], [(2, 2), (3, 1), (4, 2), (6, 2), (12, 1), (15, 1), (16, 1), (18, 1), (20, 1), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 2), (6, 2), (12, 2), (15, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 1), (3, 1), (6, 1), (8, 1), (12, 2), (15, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [], [(4, 2), (6, 2), (12, 1), (15, 1), (16, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 2), (3, 1), (4, 2), (6, 2), (12, 1), (15, 1), (16, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [(2, 2), (6, 2), (12, 1), (15, 1), (16, 1), (18, 2), (63, 1), (67, 2), (121, 1), (137, 1)], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 1), (9, 2), (11, 1), (16, 1), (18, 1), (63, 1), (73, 2), (137, 2)], [], [], [], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (12, 2), (16, 2), (18, 1), (63, 1), (73, 2), (137, 2)], [], [], [(2, 2), (3, 1), (6, 1), (12, 2), (15, 1), (16, 1), (18, 1), (63, 1), (73, 2), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (11, 1), (16, 1), (18, 1), (63, 1), (73, 2), (137, 2)], [], [], [], [], [(3, 2), (6, 1), (12, 2), (15, 1), (16, 2), (18, 1), (67, 2), (73, 1), (121, 1), (137, 2)], [], [], [], [], [], [(1, 1), (2, 1), (4, 1), (7, 2), (12, 1), (16, 2), (18, 1), (57, 2), (63, 1), (117, 1), (137, 2)], [(1, 1), (2, 1), (3, 1), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (16, 2), (18, 1), (57, 2), (63, 1), (115, 1), (137, 2)], [(1, 1), (2, 2), (3, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (16, 2), (18, 1), (120, 1), (137, 2)], [], [], [], [(1, 2), (2, 1), (3, 2), (6, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (15, 1), (18, 1), (67, 2), (73, 1), (121, 1), (137, 2)], [], [], [], [(1, 2), (7, 1), (12, 2), (15, 1), (16, 2), (18, 1), (67, 2), (73, 1), (121, 1), (137, 2)], [(1, 2), (2, 1), (3, 2), (6, 1), (8, 2), (10, 1), (12, 2), (15, 1), (16, 2), (18, 1), (67, 2), (73, 1), (121, 1), (137, 2)], [], [], [], [(1, 2), (3, 2), (4, 1), (7, 1), (11, 2), (12, 2), (15, 1), (18, 1), (66, 1), (67, 2), (121, 1), (137, 2)], [(2, 2), (18, 1), (65, 1), (67, 2), (121, 1), (137, 2)], [(3, 2), (18, 1), (121, 1), (137, 2)], [], [], [], [(1, 2), (4, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (15, 1), (16, 2), (18, 1), (63, 1), (67, 2), (120, 2), (121, 1), (130, 1), (137, 2)], [(3, 2), (4, 1), (16, 2), (18, 1), (127, 1), (137, 2)], [], [(2, 1), (3, 2), (4, 2), (6, 2), (12, 1), (15, 1), (16, 2), (51, 1), (63, 2), (67, 2), (73, 2), (121, 1)], [(1, 1), (2, 1), (6, 2), (7, 2), (12, 2), (15, 1), (57, 2), (63, 2), (67, 2), (121, 1), (314, 1)], [(0, 2), (1, 2), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (15, 2), (44, 1), (63, 1), (67, 1), (73, 1), (121, 2)], [(1, 2), (2, 2), (6, 2), (7, 1), (11, 2), (15, 2), (16, 1), (63, 1), (67, 1), (99, 1), (121, 2)], [], [(1, 2), (2, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (15, 2), (63, 2), (67, 1), (120, 2), (121, 2), (392, 1)], [(1, 2), (2, 2), (6, 2), (12, 1), (15, 2), (57, 1), (63, 1), (67, 1), (121, 2), (172, 2), (216, 1)], [(1, 2), (3, 2), (6, 2), (12, 1), (15, 2), (57, 1), (63, 1), (67, 1), (121, 2), (233, 2), (274, 1)], [], [], [], [(3, 2), (4, 1), (6, 1), (12, 1), (16, 1), (57, 2), (73, 1), (114, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb75 : List (List (Nat × Nat)) := [[(2, 1), (4, 2), (6, 2), (8, 2), (11, 1), (13, 1), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(2, 1), (4, 2), (6, 2), (8, 2), (13, 1), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (68, 1), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 1), (2, 1), (4, 1), (6, 1), (8, 2), (11, 1), (13, 1), (15, 1), (18, 1), (20, 2), (60, 1), (63, 2), (65, 2), (68, 1), (114, 2), (117, 1), (127, 1), (291, 2)], [(0, 1), (4, 2), (6, 2), (8, 1), (11, 1), (13, 1), (14, 1), (15, 1), (16, 2), (60, 1), (63, 2), (65, 2), (68, 1), (114, 1), (117, 1), (127, 1), (172, 1), (291, 2)], [(0, 1), (4, 2), (6, 2), (8, 1), (11, 1), (13, 1), (14, 1), (15, 1), (16, 2), (60, 1), (63, 2), (65, 2), (68, 1), (114, 1), (117, 1), (127, 1), (233, 1), (291, 2)], [(0, 1), (2, 1), (4, 1), (6, 2), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (57, 2), (60, 1), (63, 2), (65, 2), (68, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 2), (2, 1), (4, 1), (6, 2), (8, 1), (11, 2), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 2), (2, 1), (6, 2), (8, 1), (13, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [], [(0, 2), (4, 1), (6, 2), (13, 2), (14, 1), (15, 1), (16, 2), (18, 1), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 2), (4, 1), (6, 2), (13, 2), (14, 1), (15, 1), (16, 2), (24, 1), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (8, 1), (14, 2), (15, 1), (16, 1), (18, 1), (20, 1), (57, 1), (60, 1), (63, 2), (65, 2), (68, 2), (75, 1), (114, 1), (117, 1), (127, 1), (291, 2)], [], [(0, 1), (2, 1), (4, 1), (6, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (65, 2), (68, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (8, 1), (11, 2), (14, 2), (15, 1), (16, 1), (18, 2), (20, 1), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [], [(0, 1), (2, 1), (4, 1), (11, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 1), (2, 1), (4, 1), (6, 2), (8, 1), (11, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [(0, 2), (2, 1), (6, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [], [], [(0, 1), (2, 1), (4, 1), (6, 2), (15, 1), (18, 1), (20, 2), (57, 1), (60, 1), (63, 2), (65, 2), (114, 1), (117, 1), (127, 1), (291, 2)], [], [], [], [(2, 2), (4, 1), (8, 1), (11, 2), (14, 2), (16, 1), (18, 1), (20, 2), (63, 1), (68, 2), (117, 1), (127, 2), (291, 2)], [], [], [], [(0, 1), (2, 1), (4, 1), (8, 1), (11, 2), (13, 2), (15, 1), (18, 1), (20, 2), (57, 2), (60, 1), (63, 1), (65, 2), (117, 1), (127, 2), (291, 2)], [], [], [], [], [(2, 1), (4, 2), (8, 1), (11, 2), (13, 2), (15, 1), (18, 1), (20, 2), (63, 1), (68, 2), (117, 1), (127, 2), (291, 2)], [], [(0, 1), (2, 1), (4, 1), (6, 2), (8, 2), (11, 2), (12, 1), (13, 2), (14, 2), (16, 1), (18, 1), (20, 2), (63, 1), (68, 2), (117, 1), (127, 2), (291, 2)], [(0, 1), (2, 1), (4, 1), (8, 1), (11, 2), (13, 2), (16, 1), (18, 1), (20, 2), (63, 1), (68, 2), (117, 1), (127, 2), (291, 2)], [], [], [], [], [], [(0, 1), (4, 2), (6, 2), (8, 2), (11, 1), (13, 1), (57, 1), (60, 1), (63, 1), (114, 1), (127, 2)], [], [], [(8, 2), (13, 1), (57, 2), (63, 1), (117, 1), (127, 2)], [], [], [(2, 1), (4, 2), (6, 2), (13, 1), (14, 2), (16, 1), (18, 1), (20, 2), (57, 2), (63, 1), (114, 1), (127, 2), (172, 2), (174, 1)], [(2, 1), (4, 2), (6, 2), (13, 1), (14, 2), (16, 1), (18, 1), (20, 2), (57, 2), (63, 1), (114, 1), (127, 2), (233, 2), (236, 1)], [], [], [(0, 1), (4, 2), (6, 2), (8, 2), (11, 1), (14, 1), (15, 1), (16, 2), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (114, 1), (127, 2)], [], [], [], [], [(0, 1), (4, 2), (6, 2), (15, 1), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (114, 1), (127, 2)], [(0, 1), (4, 2), (8, 2), (12, 2), (14, 1), (15, 1), (16, 2), (17, 1), (57, 1), (60, 1), (63, 1), (65, 2), (68, 1), (114, 1), (127, 2)], [], [(0, 1), (2, 2), (6, 2), (8, 2), (11, 1), (14, 1), (15, 1), (16, 2), (57, 1), (60, 1), (63, 1), (65, 2), (66, 1), (114, 1), (127, 2)], [], [], [(0, 1), (4, 2), (6, 2), (11, 1), (15, 1), (16, 2), (57, 1), (60, 1), (63, 1), (65, 2), (73, 1), (114, 1), (127, 2)], [(0, 1), (4, 2), (6, 2), (11, 1), (57, 2), (71, 1), (114, 1), (127, 2)], [], [(15, 1), (16, 2), (57, 2), (60, 1), (63, 1), (65, 2), (127, 2), (130, 1)], [], [], [(0, 2), (2, 2), (4, 2), (6, 1), (8, 2), (11, 2), (12, 1), (13, 2), (14, 2), (15, 1), (16, 1), (17, 2), (18, 2), (20, 1), (51, 1), (57, 1), (60, 1), (65, 2), (68, 2), (114, 1), (117, 2), (291, 1)], [(0, 1), (2, 2), (6, 1), (12, 1), (13, 1), (14, 2), (15, 1), (16, 1), (17, 2), (18, 2), (20, 1), (60, 1), (65, 2), (114, 1), (117, 2), (291, 1), (314, 1)], [(0, 2), (2, 1), (6, 1), (15, 2), (16, 2), (18, 1), (20, 2), (44, 1), (57, 2), (60, 2), (65, 1), (68, 1), (114, 2), (117, 1), (291, 2)], [(0, 2), (2, 1), (6, 2), (8, 2), (11, 1), (12, 2), (14, 1), (15, 2), (16, 2), (18, 1), (20, 2), (57, 2), (60, 2), (65, 1), (99, 1), (114, 2), (117, 1), (291, 2)], [(0, 1), (2, 1), (4, 1), (6, 2), (15, 2), (16, 2), (18, 1), (20, 2), (60, 2), (65, 1), (114, 1), (117, 1), (157, 1), (291, 2)], [], [(0, 1), (2, 2), (6, 1), (8, 1), (14, 2), (15, 2), (18, 2), (20, 1), (60, 2), (65, 1), (114, 2), (117, 1), (172, 2), (216, 1), (291, 2)], [(0, 1), (2, 2), (6, 2), (12, 2), (15, 2), (18, 2), (20, 1), (60, 2), (65, 1), (114, 2), (117, 1), (233, 2), (274, 1), (291, 2)], [], [], [], [], [(2, 2), (4, 1), (8, 1), (11, 1), (13, 1), (14, 1), (16, 2), (18, 2), (20, 1), (57, 2), (68, 1), (293, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb76 : List (List (Nat × Nat)) := [[(0, 2), (3, 1), (12, 1), (18, 2), (19, 1), (57, 2), (58, 2), (63, 2), (66, 1), (72, 2), (114, 2), (137, 1), (172, 1), (173, 2)], [(0, 2), (3, 1), (6, 2), (12, 1), (18, 2), (19, 1), (57, 2), (58, 2), (63, 2), (66, 2), (72, 2), (114, 2), (137, 1), (172, 1), (173, 2)], [(0, 2), (3, 1), (6, 2), (12, 1), (18, 2), (19, 1), (57, 1), (58, 2), (63, 2), (66, 2), (72, 2), (137, 1), (172, 1), (173, 2)], [], [(0, 2), (3, 1), (6, 1), (12, 1), (19, 1), (58, 2), (63, 2), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2), (233, 1)], [(0, 2), (3, 1), (12, 1), (18, 1), (19, 1), (57, 2), (58, 2), (63, 2), (66, 1), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2)], [(0, 2), (3, 2), (6, 2), (12, 1), (18, 1), (19, 1), (57, 1), (58, 2), (63, 2), (66, 2), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2)], [(0, 2), (3, 1), (12, 1), (18, 1), (19, 1), (57, 1), (58, 2), (63, 2), (66, 2), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2)], [(0, 2), (3, 1), (8, 2), (12, 1), (13, 1), (18, 1), (19, 1), (57, 1), (58, 2), (63, 2), (66, 2), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2)], [], [(0, 2), (3, 1), (6, 1), (12, 1), (18, 2), (19, 1), (24, 1), (58, 2), (63, 2), (72, 2), (114, 2), (137, 1), (173, 2)], [(0, 2), (3, 1), (12, 1), (18, 1), (19, 1), (57, 1), (58, 2), (63, 2), (66, 1), (72, 2), (75, 1), (114, 2), (137, 1), (172, 2), (173, 2)], [(1, 2), (3, 1), (7, 1), (8, 2), (13, 1), (18, 2), (57, 1), (58, 2), (63, 2), (66, 1), (72, 2), (77, 1), (114, 2), (137, 1), (172, 2), (173, 2)], [(0, 2), (3, 1), (6, 1), (12, 1), (19, 1), (58, 2), (66, 2), (72, 2), (114, 2), (137, 1), (173, 2)], [(0, 2), (3, 1), (6, 2), (12, 1), (18, 2), (19, 1), (57, 1), (58, 2), (63, 2), (66, 2), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2)], [(0, 2), (3, 1), (6, 2), (7, 1), (8, 2), (12, 1), (13, 1), (15, 2), (18, 2), (20, 1), (57, 1), (58, 2), (63, 2), (66, 2), (72, 2), (114, 2), (137, 1), (172, 2), (173, 2)], [], [(0, 2), (3, 1), (8, 1), (12, 1), (19, 1), (58, 2), (63, 2), (72, 2), (114, 2), (137, 1), (173, 2)], [], [], [(0, 2), (3, 1), (6, 1), (12, 1), (19, 1), (58, 2), (63, 2), (72, 2), (114, 2), (137, 1), (173, 2)], [], [], [], [], [], [(7, 1), (18, 2), (58, 1), (63, 1), (66, 1), (114, 1), (137, 2), (172, 2), (173, 2)], [], [], [], [(0, 2), (3, 1), (12, 1), (18, 1), (19, 1), (57, 2), (58, 2), (63, 1), (66, 2), (72, 2), (114, 1), (137, 2), (172, 2), (173, 2)], [], [(6, 1), (18, 1), (19, 1), (58, 1), (63, 1), (66, 1), (114, 1), (137, 2), (172, 2), (173, 2)], [], [], [], [(0, 2), (3, 1), (8, 1), (12, 1), (13, 2), (18, 1), (19, 1), (58, 1), (63, 1), (66, 1), (114, 1), (137, 2), (172, 2), (173, 2)], [], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 2), (21, 1), (57, 1), (58, 1), (63, 1), (114, 1), (137, 2), (172, 1), (173, 2)], [], [], [(12, 1), (18, 2), (58, 1), (63, 1), (66, 2), (72, 2), (114, 1), (137, 2), (172, 1)], [], [], [(6, 1), (18, 2), (58, 1), (63, 1), (66, 1), (114, 1), (137, 2), (172, 1)], [], [], [(6, 1), (18, 2), (57, 1), (63, 1), (66, 1), (115, 1), (137, 2), (172, 1)], [], [(1, 2), (3, 1), (8, 1), (13, 2), (15, 1), (18, 2), (19, 1), (20, 2), (58, 1), (63, 1), (66, 1), (114, 1), (137, 2), (172, 1), (173, 2), (174, 1)], [], [(1, 2), (6, 2), (7, 1), (18, 1), (57, 2), (58, 1), (114, 1), (137, 2), (173, 2), (181, 1)], [], [], [(0, 2), (1, 1), (6, 1), (7, 2), (12, 1), (18, 1), (19, 1), (58, 1), (63, 1), (66, 2), (72, 2), (114, 1), (137, 2), (172, 1)], [], [(0, 2), (3, 1), (12, 1), (18, 1), (19, 1), (58, 1), (63, 1), (66, 2), (72, 2), (114, 1), (137, 2), (172, 1)], [], [(0, 2), (3, 1), (7, 2), (8, 1), (12, 1), (13, 2), (15, 1), (18, 1), (19, 1), (58, 1), (63, 1), (66, 2), (72, 2), (114, 1), (137, 2), (172, 1)], [], [(0, 2), (3, 1), (6, 2), (8, 2), (12, 1), (22, 1), (57, 1), (58, 1), (63, 1), (66, 1), (72, 2), (114, 1), (137, 2)], [], [(0, 2), (3, 1), (6, 1), (7, 2), (12, 1), (18, 1), (19, 1), (58, 1), (63, 1), (65, 1), (66, 1), (72, 2), (114, 1), (137, 2), (172, 1)], [], [(0, 2), (3, 1), (6, 1), (7, 2), (8, 1), (12, 1), (13, 2), (18, 1), (19, 1), (58, 1), (63, 1), (66, 1), (72, 2), (73, 1), (114, 1), (137, 2), (172, 1)], [], [(57, 2), (80, 1), (114, 1), (137, 2)], [(0, 2), (3, 1), (6, 1), (7, 2), (8, 1), (12, 1), (13, 2), (18, 1), (19, 1), (57, 1), (58, 1), (63, 1), (66, 1), (72, 2), (130, 1), (137, 2), (172, 1)], [], [], [(0, 2), (1, 2), (3, 2), (6, 2), (7, 1), (12, 1), (19, 1), (51, 1), (57, 1), (72, 2), (172, 1), (173, 1)], [(0, 2), (3, 1), (12, 1), (18, 1), (19, 1), (57, 1), (72, 2), (173, 1), (314, 1)], [(0, 1), (3, 2), (6, 2), (12, 2), (19, 1), (44, 1), (57, 1), (66, 1), (72, 1), (173, 2)], [(0, 2), (3, 1), (6, 1), (8, 2), (12, 1), (13, 1), (19, 1), (57, 1), (72, 1), (99, 1), (173, 2)], [(0, 1), (3, 2), (12, 2), (19, 1), (57, 2), (72, 1), (114, 2), (157, 1), (173, 2)], [(0, 1), (3, 2), (6, 2), (8, 1), (12, 2), (13, 2), (19, 2), (57, 2), (72, 1), (173, 1), (392, 1)], [], [(0, 2), (3, 1), (6, 2), (8, 2), (12, 1), (13, 1), (18, 2), (19, 1), (66, 2), (72, 1), (172, 2), (173, 2), (233, 2), (274, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb77 : List (List (Nat × Nat)) := [[(0, 2), (5, 1), (6, 1), (8, 2), (10, 1), (18, 2), (24, 2), (25, 2), (57, 1), (63, 1), (64, 1), (114, 2), (137, 1), (233, 1), (234, 2)], [(0, 2), (5, 1), (6, 1), (8, 1), (10, 1), (18, 2), (24, 2), (25, 2), (57, 1), (63, 2), (64, 1), (114, 2), (137, 1), (233, 1), (234, 2)], [(2, 2), (5, 1), (8, 2), (10, 1), (18, 2), (24, 2), (25, 2), (63, 2), (64, 1), (137, 1), (233, 1), (234, 2)], [(0, 1), (2, 1), (5, 1), (6, 1), (10, 1), (18, 2), (25, 2), (57, 2), (64, 1), (114, 2), (137, 1), (172, 1), (233, 2), (234, 2)], [], [(0, 2), (5, 1), (6, 1), (8, 2), (10, 1), (18, 2), (24, 1), (25, 2), (57, 1), (63, 1), (64, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(5, 1), (6, 1), (8, 1), (10, 1), (18, 2), (24, 1), (25, 2), (63, 2), (64, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(2, 2), (5, 1), (6, 1), (8, 2), (10, 1), (18, 2), (24, 1), (25, 2), (63, 2), (64, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(2, 2), (5, 1), (8, 2), (10, 1), (12, 1), (18, 2), (24, 1), (25, 2), (63, 2), (64, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(0, 1), (2, 1), (5, 1), (6, 1), (10, 1), (24, 2), (25, 2), (57, 2), (64, 1), (114, 2), (137, 1), (234, 2)], [], [(2, 2), (5, 1), (6, 1), (8, 2), (10, 1), (18, 1), (24, 2), (25, 2), (63, 1), (64, 1), (75, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(2, 2), (5, 1), (6, 1), (8, 2), (10, 1), (18, 1), (24, 2), (25, 2), (63, 1), (64, 1), (77, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [], [(2, 2), (5, 1), (6, 1), (8, 1), (10, 1), (18, 2), (24, 2), (25, 2), (63, 2), (64, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(2, 2), (5, 1), (6, 1), (8, 1), (10, 1), (18, 1), (20, 1), (24, 2), (25, 2), (63, 2), (64, 1), (114, 2), (137, 1), (233, 2), (234, 2)], [(0, 1), (2, 1), (5, 1), (6, 2), (8, 2), (10, 1), (18, 2), (25, 2), (57, 2), (64, 1), (114, 2), (137, 1), (234, 2)], [], [(0, 2), (5, 1), (6, 1), (10, 1), (18, 2), (25, 2), (57, 2), (64, 1), (114, 2), (137, 1), (234, 2)], [(0, 1), (2, 1), (5, 1), (6, 1), (10, 1), (18, 2), (25, 2), (57, 2), (64, 1), (114, 2), (137, 1), (234, 2)], [], [], [], [], [], [], [], [(0, 2), (5, 1), (6, 2), (8, 1), (10, 1), (18, 1), (24, 2), (25, 2), (57, 1), (63, 1), (64, 1), (114, 1), (137, 2), (233, 2), (234, 2)], [], [], [], [], [], [(0, 2), (3, 1), (6, 2), (8, 2), (9, 2), (10, 1), (18, 1), (24, 1), (57, 1), (63, 1), (64, 1), (114, 1), (137, 2), (233, 2), (234, 2)], [], [(0, 2), (2, 1), (6, 2), (8, 1), (10, 1), (18, 1), (24, 1), (57, 1), (63, 1), (64, 1), (114, 1), (137, 2), (233, 2), (234, 2)], [], [(0, 2), (2, 1), (8, 1), (9, 2), (10, 1), (12, 2), (14, 1), (18, 1), (24, 1), (57, 1), (63, 1), (64, 1), (114, 1), (137, 2), (233, 2), (234, 2)], [(0, 1), (2, 2), (6, 2), (9, 2), (10, 1), (21, 1), (57, 2), (64, 1), (114, 1), (137, 2), (233, 1), (234, 2)], [], [], [], [(0, 2), (5, 1), (6, 2), (8, 1), (9, 1), (18, 1), (24, 2), (25, 2), (57, 1), (63, 2), (114, 1), (137, 2), (233, 1)], [], [], [(0, 2), (5, 1), (6, 2), (8, 2), (18, 1), (24, 2), (25, 2), (57, 1), (63, 1), (64, 1), (114, 1), (137, 2), (233, 1)], [], [], [(0, 1), (2, 1), (3, 2), (5, 1), (8, 1), (9, 1), (18, 1), (24, 2), (25, 2), (57, 2), (63, 1), (120, 1), (137, 2), (233, 1)], [], [(0, 2), (2, 1), (6, 2), (8, 1), (10, 1), (18, 2), (20, 2), (24, 2), (25, 2), (57, 1), (63, 1), (64, 1), (114, 1), (137, 2), (233, 1), (234, 2), (236, 1)], [(2, 2), (3, 2), (5, 1), (6, 2), (9, 1), (18, 1), (24, 1), (25, 2), (114, 1), (137, 2), (172, 2), (181, 1)], [], [], [], [(0, 2), (5, 1), (6, 2), (8, 2), (18, 1), (24, 1), (57, 1), (63, 2), (114, 1), (137, 2), (233, 1)], [], [(0, 2), (2, 1), (6, 2), (8, 1), (10, 1), (18, 1), (24, 1), (57, 1), (63, 2), (114, 1), (137, 2), (233, 1)], [], [(0, 2), (2, 1), (8, 1), (12, 2), (17, 1), (18, 1), (24, 1), (57, 1), (63, 2), (114, 1), (137, 2), (233, 1)], [(0, 1), (2, 2), (6, 2), (22, 1), (57, 2), (63, 1), (114, 1), (137, 2)], [], [], [(0, 2), (2, 1), (6, 2), (8, 2), (18, 1), (24, 1), (57, 1), (63, 1), (67, 1), (114, 1), (137, 2), (233, 1)], [], [(0, 2), (2, 1), (8, 2), (12, 2), (18, 1), (24, 1), (57, 1), (63, 1), (71, 1), (114, 1), (137, 2), (233, 1)], [(0, 1), (2, 2), (6, 2), (8, 1), (57, 2), (80, 1), (114, 1), (137, 2)], [], [(0, 1), (2, 2), (6, 1), (8, 1), (12, 2), (18, 1), (24, 1), (57, 2), (63, 1), (127, 1), (137, 2), (233, 1)], [], [(0, 2), (2, 2), (5, 2), (6, 2), (10, 2), (12, 1), (17, 2), (25, 1), (51, 1), (57, 1), (64, 2), (233, 1), (234, 1)], [(0, 2), (2, 2), (5, 2), (6, 2), (10, 2), (12, 1), (17, 2), (24, 1), (25, 1), (57, 1), (64, 2), (234, 1), (314, 1)], [(0, 2), (2, 2), (5, 2), (6, 2), (9, 1), (10, 1), (12, 1), (14, 2), (25, 1), (44, 1), (57, 1), (63, 1), (64, 1), (234, 2)], [(0, 2), (2, 2), (5, 2), (8, 1), (10, 1), (25, 1), (57, 1), (64, 1), (99, 1), (234, 2)], [(0, 1), (5, 2), (9, 1), (10, 1), (12, 1), (14, 2), (25, 1), (57, 2), (64, 1), (114, 2), (157, 1), (234, 2)], [(0, 2), (3, 1), (5, 1), (9, 2), (10, 2), (12, 2), (25, 2), (57, 1), (64, 2), (114, 1), (120, 2), (234, 1), (392, 1)], [(2, 1), (5, 2), (6, 2), (8, 2), (9, 1), (10, 1), (12, 1), (14, 2), (24, 2), (25, 1), (63, 2), (64, 1), (172, 2), (216, 1), (233, 2), (234, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb78 : List (List (Nat × Nat)) := [[(0, 1), (1, 1), (3, 2), (6, 2), (7, 2), (9, 1), (12, 2), (13, 1), (18, 2), (19, 1), (24, 1), (25, 2), (34, 1), (60, 1), (63, 2), (65, 2), (72, 1), (121, 1), (127, 2), (173, 2), (181, 1)], [(0, 2), (1, 2), (3, 2), (6, 1), (7, 1), (9, 1), (12, 1), (13, 1), (15, 1), (18, 2), (19, 1), (24, 2), (25, 1), (60, 1), (64, 1), (65, 2), (71, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (1, 1), (3, 2), (6, 2), (7, 2), (9, 1), (12, 2), (13, 1), (15, 2), (18, 2), (19, 1), (24, 1), (25, 2), (34, 1), (57, 1), (63, 1), (72, 1), (121, 1), (173, 2), (181, 1)], [(3, 2), (9, 1), (13, 1), (15, 1), (18, 1), (19, 2), (24, 1), (25, 2), (34, 1), (57, 1), (60, 2), (63, 1), (65, 1), (71, 1), (181, 1)], [(0, 1), (1, 2), (3, 2), (7, 1), (9, 1), (12, 2), (13, 1), (15, 1), (18, 2), (19, 1), (34, 1), (57, 1), (60, 2), (63, 1), (64, 2), (65, 1), (71, 1), (72, 1), (173, 2), (181, 1), (234, 1)], [(0, 1), (1, 1), (3, 1), (6, 2), (7, 2), (9, 2), (12, 2), (13, 2), (15, 2), (18, 1), (19, 2), (24, 1), (25, 2), (57, 1), (60, 2), (64, 2), (65, 1), (71, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(1, 1), (3, 1), (7, 2), (9, 2), (13, 2), (18, 1), (19, 2), (34, 1), (57, 1), (60, 1), (63, 2), (64, 1), (65, 2), (71, 2), (117, 1), (127, 2), (173, 1), (181, 2), (233, 1), (234, 2), (291, 2)], [(0, 1), (1, 1), (3, 1), (6, 2), (7, 2), (9, 2), (12, 2), (13, 2), (15, 2), (18, 1), (19, 2), (24, 1), (25, 2), (60, 2), (63, 1), (64, 2), (65, 1), (71, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 1), (3, 1), (6, 1), (7, 2), (9, 2), (12, 2), (15, 2), (18, 1), (19, 2), (24, 1), (25, 2), (60, 2), (63, 1), (64, 2), (65, 1), (71, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 1), (3, 1), (6, 1), (7, 2), (9, 2), (12, 2), (13, 2), (15, 2), (18, 2), (19, 2), (24, 1), (25, 2), (60, 2), (63, 1), (64, 2), (65, 1), (71, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 1), (3, 1), (6, 1), (7, 2), (9, 2), (12, 2), (13, 2), (15, 2), (18, 1), (19, 2), (24, 2), (25, 2), (60, 2), (63, 1), (64, 2), (65, 1), (71, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [(1, 2), (3, 2), (6, 2), (7, 1), (9, 1), (18, 1), (19, 2), (34, 1), (60, 1), (63, 1), (64, 2), (65, 2), (117, 2), (121, 1), (173, 2), (181, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (3, 2), (6, 1), (7, 1), (9, 1), (12, 1), (13, 2), (15, 1), (18, 1), (19, 2), (24, 2), (25, 1), (34, 2), (57, 1), (63, 2), (64, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (3, 2), (6, 1), (9, 1), (12, 2), (24, 2), (25, 1), (34, 2), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (65, 1), (72, 1), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(3, 2), (6, 2), (7, 1), (9, 1), (15, 2), (18, 1), (19, 2), (34, 1), (57, 1), (64, 2), (117, 2), (127, 1), (173, 2), (181, 1), (233, 2), (234, 1), (291, 1)], [(3, 2), (9, 1), (15, 2), (34, 1), (57, 1), (64, 2), (117, 2), (127, 1), (173, 2), (181, 1), (233, 2), (234, 1), (291, 1)], [(1, 2), (7, 1), (15, 2), (18, 1), (19, 2), (24, 2), (25, 1), (34, 1), (57, 1), (64, 2), (117, 2), (127, 1), (173, 2), (181, 1), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (3, 2), (6, 1), (7, 1), (9, 1), (12, 1), (13, 2), (15, 1), (18, 1), (19, 2), (24, 2), (25, 1), (34, 2), (57, 2), (60, 2), (63, 1), (64, 1), (65, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 2), (1, 2), (3, 2), (6, 1), (7, 1), (9, 1), (12, 1), (18, 1), (19, 2), (24, 1), (25, 2), (34, 2), (57, 2), (60, 2), (63, 1), (64, 1), (65, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (3, 2), (6, 2), (9, 1), (12, 2), (13, 2), (24, 2), (25, 1), (34, 2), (57, 2), (60, 2), (63, 1), (64, 1), (65, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 2), (1, 2), (3, 2), (6, 2), (7, 1), (12, 1), (13, 2), (14, 1), (18, 1), (19, 2), (24, 1), (25, 2), (34, 2), (57, 2), (60, 2), (63, 1), (64, 1), (65, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 2), (1, 2), (3, 2), (6, 2), (7, 1), (12, 1), (19, 2), (21, 1), (24, 1), (25, 2), (34, 2), (57, 2), (60, 2), (63, 1), (64, 1), (65, 1), (72, 2), (117, 1), (121, 2), (173, 2), (181, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (1, 1), (3, 1), (7, 2), (9, 2), (12, 2), (15, 2), (18, 2), (19, 1), (24, 1), (25, 2), (34, 1), (57, 2), (64, 2), (71, 1), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (3, 1), (6, 2), (7, 1), (9, 2), (12, 1), (15, 1), (18, 2), (19, 1), (24, 2), (25, 1), (57, 1), (60, 1), (63, 2), (65, 2), (71, 1), (72, 2), (121, 2), (127, 1), (173, 1), (181, 2)], [(1, 1), (3, 1), (6, 1), (7, 2), (9, 2), (12, 1), (15, 1), (24, 2), (25, 1), (57, 1), (60, 1), (63, 2), (65, 2), (71, 1), (72, 2), (121, 2), (127, 1), (173, 1), (181, 2)], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 1), (12, 1), (15, 1), (18, 2), (19, 1), (57, 1), (60, 1), (63, 2), (65, 2), (71, 1), (72, 2), (121, 2), (127, 1), (173, 1), (181, 2)], [(0, 1), (1, 1), (3, 1), (6, 2), (7, 2), (9, 2), (12, 2), (13, 1), (15, 2), (18, 2), (19, 1), (24, 1), (25, 2), (34, 1), (57, 1), (60, 1), (63, 1), (64, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 2), (3, 1), (6, 2), (9, 2), (12, 1), (24, 1), (25, 2), (34, 1), (57, 1), (60, 1), (63, 1), (64, 2), (65, 2), (72, 2), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 1), (1, 1), (3, 1), (6, 2), (7, 2), (9, 2), (12, 2), (18, 2), (19, 1), (24, 2), (25, 1), (34, 1), (57, 1), (60, 1), (63, 1), (65, 2), (72, 1), (117, 2), (121, 1), (173, 1), (181, 2), (233, 2), (234, 1), (291, 1)], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 1), (9, 2), (12, 1), (13, 1), (15, 1), (18, 2), (19, 1), (24, 2), (25, 1), (60, 1), (65, 2), (71, 1), (72, 2), (117, 1), (121, 2), (173, 1), (181, 2)], [(1, 1), (3, 1), (6, 1), (7, 2), (9, 2), (15, 2), (24, 2), (25, 1), (58, 2), (60, 2), (65, 1), (71, 1), (115, 1), (121, 2), (173, 1), (181, 2)], [(0, 2), (1, 2), (6, 1), (7, 1), (12, 1), (15, 2), (18, 2), (19, 1), (60, 2), (65, 1), (71, 1), (72, 2), (120, 1), (121, 2), (173, 1), (181, 2)], [(3, 1), (9, 2), (13, 1), (15, 2), (24, 2), (25, 1), (60, 2), (65, 1), (174, 1), (181, 2)], [(0, 2), (1, 1), (3, 1), (7, 2), (9, 2), (12, 1), (13, 1), (15, 2), (18, 2), (19, 1), (60, 2), (64, 1), (65, 1), (72, 2), (173, 1), (181, 2), (234, 2), (236, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [(6, 2), (13, 2), (15, 2), (18, 2), (19, 1), (34, 2), (51, 1), (57, 2), (60, 1), (63, 2), (65, 2), (71, 2)], [(0, 2), (6, 2), (12, 1), (13, 1), (15, 1), (18, 1), (19, 2), (24, 2), (25, 1), (34, 2), (57, 2), (63, 2), (64, 2), (71, 1), (72, 2), (117, 2), (121, 1), (233, 2), (234, 1), (291, 1), (314, 1)], [], [], [], [], [], [], [], [(0, 1), (1, 1), (7, 2), (12, 2), (15, 1), (24, 1), (25, 2), (34, 2), (64, 1), (71, 1), (72, 1), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [], [(0, 1), (1, 1), (6, 2), (7, 2), (12, 2), (15, 2), (24, 1), (25, 2), (34, 2), (57, 1), (60, 1), (63, 2), (64, 1), (65, 2), (71, 1), (72, 1), (114, 1), (117, 1), (121, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (3, 1), (6, 1), (9, 2), (12, 2), (13, 1), (15, 2), (24, 1), (25, 2), (34, 2), (57, 1), (60, 1), (63, 2), (64, 2), (65, 2), (72, 1), (117, 2), (120, 2), (121, 2), (233, 2), (234, 1), (291, 1), (293, 1)], [(0, 2), (1, 2), (6, 1), (7, 1), (12, 1), (18, 1), (19, 2), (24, 1), (25, 2), (34, 2), (57, 1), (60, 2), (63, 2), (64, 1), (65, 1), (72, 2), (117, 1), (121, 2), (172, 1), (173, 2), (233, 1), (234, 2), (291, 2)], [(0, 1), (6, 1), (12, 2), (24, 2), (25, 1), (34, 2), (57, 1), (60, 2), (63, 2), (64, 2), (65, 1), (72, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb79 : List (List (Nat × Nat)) := [[], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 2), (7, 2), (9, 2), (11, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1), (66, 2), (68, 1), (73, 1)], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 2), (7, 2), (9, 2), (11, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1), (66, 2), (68, 1), (130, 1)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (9, 1), (11, 1), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1), (66, 1), (68, 1), (73, 1), (115, 2), (130, 1), (173, 1)], [(1, 1), (3, 1), (4, 2), (9, 1), (10, 2), (11, 1), (15, 2), (16, 1), (22, 1), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1), (65, 2), (66, 2), (68, 1), (73, 1), (115, 2), (130, 1), (234, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (5, 1), (7, 2), (9, 1), (14, 2), (19, 2), (22, 2), (25, 2), (34, 2), (65, 1), (66, 1), (68, 2), (73, 2), (115, 1), (130, 2)], [], [], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (5, 1), (7, 2), (9, 1), (14, 2), (19, 2), (22, 2), (25, 2), (34, 2), (57, 2), (65, 1), (66, 1), (68, 2), (73, 2), (75, 1), (115, 1), (130, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (5, 1), (9, 1), (12, 2), (15, 1), (16, 2), (19, 1), (22, 2), (25, 2), (34, 2), (57, 2), (63, 1), (64, 2), (66, 1), (73, 2), (77, 1), (115, 1), (130, 2)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (5, 1), (7, 2), (9, 1), (14, 2), (19, 2), (22, 2), (25, 2), (34, 2), (57, 2), (63, 1), (65, 1), (66, 1), (68, 2), (73, 2), (115, 1), (130, 2)], [], [], [], [], [], [], [], [], [], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (11, 2), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 2), (63, 1), (64, 2), (66, 1), (115, 1), (130, 2)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (11, 2), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2), (66, 1), (73, 2)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 2), (9, 1), (11, 2), (14, 1), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2), (66, 1), (68, 2)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 2), (9, 1), (11, 2), (14, 1), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (9, 1), (11, 2), (14, 2), (15, 2), (16, 1), (22, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2), (65, 2), (66, 1)], [], [], [], [(0, 1), (1, 2), (3, 2), (4, 1), (5, 2), (7, 2), (9, 2), (11, 2), (14, 2), (22, 1), (25, 1), (34, 2), (58, 2), (65, 1), (66, 1), (73, 2), (115, 1), (130, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (7, 1), (11, 2), (14, 1), (19, 1), (22, 1), (25, 1), (34, 2), (58, 2), (65, 1), (115, 1), (130, 2)], [(0, 1), (1, 1), (3, 2), (4, 2), (5, 2), (7, 2), (9, 2), (11, 2), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (58, 2), (66, 1), (115, 1), (130, 2)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (11, 2), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (65, 1), (66, 1), (68, 2), (73, 2)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (11, 2), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (66, 1), (73, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (7, 1), (9, 1), (11, 2), (12, 1), (19, 1), (22, 1), (25, 1), (34, 2), (65, 1), (68, 2)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (11, 2), (14, 2), (15, 1), (16, 2), (22, 1), (25, 1), (34, 2), (66, 1), (68, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (7, 2), (11, 2), (14, 1), (15, 1), (16, 2), (21, 1), (22, 1), (25, 1), (34, 2)], [(0, 1), (2, 1), (5, 1), (9, 2), (11, 2), (15, 1), (16, 2), (19, 2), (22, 2), (25, 2), (34, 2), (57, 1), (63, 2), (64, 1), (66, 2), (115, 2), (130, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 1), (7, 2), (9, 1), (15, 1), (16, 2), (19, 2), (22, 2), (25, 2), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1), (66, 2), (73, 1)], [(5, 1), (14, 1), (15, 1), (16, 2), (19, 1), (22, 2), (25, 2), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 1), (7, 2), (9, 1), (19, 2), (22, 2), (25, 2), (34, 2), (57, 1), (58, 2), (63, 2), (64, 1), (65, 1), (66, 2)], [], [], [], [], [], [], [], [], [], [(0, 1), (2, 1), (5, 1), (11, 2), (14, 2), (15, 1), (16, 2), (19, 1), (22, 2), (25, 2), (58, 1), (65, 2), (66, 2), (73, 1), (115, 2), (130, 1)], [(0, 1), (2, 1), (5, 1), (9, 2), (11, 2), (15, 1), (16, 2), (19, 1), (22, 2), (25, 2), (58, 1), (65, 2), (66, 2), (68, 1), (115, 2), (130, 1)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (9, 2), (11, 2), (15, 1), (16, 2), (19, 1), (22, 2), (25, 2), (58, 1), (65, 2), (115, 2), (130, 1)], [(0, 1), (2, 1), (5, 1), (9, 2), (11, 2), (14, 2), (19, 1), (22, 2), (58, 1), (66, 2), (115, 2), (130, 1)], [(0, 2), (5, 1), (9, 1), (15, 1), (16, 2), (19, 1), (22, 2), (25, 2), (65, 2), (73, 1)], [(0, 2), (2, 1), (7, 2), (9, 1), (10, 1), (14, 2), (19, 1), (22, 2), (66, 2), (73, 1)], [(0, 2), (5, 1), (9, 1), (11, 2), (15, 1), (19, 1), (22, 2), (25, 2), (65, 2), (68, 1)], [(0, 2), (2, 1), (9, 1), (11, 2), (12, 2), (17, 1), (19, 1), (22, 2), (66, 2), (68, 1)], [], [], [], [], [], [], [], [], [], [], [(0, 1), (1, 2), (2, 1), (5, 1), (7, 1), (9, 2), (11, 2), (12, 1), (15, 1), (16, 2), (17, 2), (19, 2), (25, 2), (34, 1), (51, 1), (57, 2), (63, 1), (64, 2), (65, 1), (66, 2), (68, 2), (73, 2), (115, 1), (130, 2)], [], [(1, 2), (3, 2), (4, 1), (7, 1), (14, 1), (15, 1), (16, 2), (19, 2), (44, 1), (57, 1), (63, 2), (64, 1), (65, 2), (66, 1), (68, 1), (73, 1), (115, 2), (130, 1)], [], [], [], [], [], [(0, 2), (1, 2), (5, 1), (7, 1), (9, 2), (11, 2), (12, 1), (14, 1), (15, 2), (16, 1), (17, 2), (19, 2), (25, 2), (34, 1), (57, 1), (58, 2), (73, 1), (75, 2), (470, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (11, 1), (14, 1), (15, 2), (16, 1), (19, 1), (34, 2), (58, 1), (63, 1), (64, 2), (65, 2), (115, 2), (130, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (11, 1), (14, 1), (15, 2), (16, 1), (19, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2), (65, 2), (73, 1), (114, 1), (115, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (9, 2), (11, 1), (14, 2), (15, 2), (16, 1), (19, 2), (25, 2), (34, 1), (58, 2), (68, 1), (293, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (9, 1), (11, 2), (14, 2), (15, 2), (16, 1), (19, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2), (65, 2), (66, 1), (172, 1), (173, 2)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (9, 1), (10, 1), (11, 2), (14, 1), (15, 1), (16, 2), (19, 1), (25, 1), (34, 2), (57, 2), (58, 1), (63, 1), (64, 2), (233, 1), (234, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb80 : List (List (Nat × Nat)) := [[(0, 2), (1, 1), (6, 2), (7, 2), (8, 2), (9, 2), (10, 1), (11, 1), (12, 2), (14, 1), (16, 2), (18, 2), (19, 1), (20, 1), (58, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (80, 1), (470, 2)], [], [(0, 2), (1, 1), (6, 2), (7, 2), (8, 2), (9, 2), (10, 1), (11, 1), (12, 2), (14, 1), (16, 1), (18, 2), (19, 1), (20, 1), (58, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (80, 1), (130, 1), (470, 2)], [(0, 2), (1, 2), (2, 2), (6, 1), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (15, 2), (16, 2), (18, 2), (20, 1), (60, 2), (67, 1), (71, 1), (74, 2), (80, 1), (115, 2), (130, 1), (173, 1), (470, 2)], [(0, 1), (1, 2), (6, 2), (7, 2), (8, 2), (10, 1), (11, 1), (15, 2), (16, 2), (18, 2), (20, 1), (60, 2), (66, 2), (67, 1), (71, 1), (72, 1), (74, 2), (80, 1), (115, 2), (130, 1), (234, 1), (470, 2)], [], [(0, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 2), (16, 1), (18, 1), (19, 2), (80, 2), (115, 1), (130, 2)], [], [], [], [], [], [], [], [(0, 1), (2, 2), (6, 1), (7, 1), (8, 2), (9, 1), (10, 2), (11, 2), (14, 1), (15, 2), (19, 1), (20, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 1), (72, 1), (74, 2), (80, 2), (115, 1), (130, 2), (470, 1)], [(0, 2), (2, 1), (6, 1), (7, 1), (8, 2), (10, 2), (14, 2), (15, 2), (16, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 1), (72, 1), (74, 2), (80, 2), (115, 1), (130, 2), (470, 1)], [(0, 1), (2, 2), (6, 2), (7, 1), (8, 2), (9, 1), (10, 2), (11, 2), (14, 1), (15, 2), (18, 2), (19, 1), (20, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 1), (72, 1), (74, 2), (80, 2), (115, 1), (130, 2), (470, 1)], [(0, 1), (2, 2), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (14, 1), (15, 2), (18, 2), (19, 1), (20, 2), (60, 2), (65, 2), (66, 2), (67, 2), (68, 1), (71, 1), (72, 1), (74, 2), (80, 2), (115, 1), (130, 2), (470, 1)], [], [], [], [], [(1, 1), (2, 2), (6, 1), (12, 1), (15, 1), (16, 1), (18, 2), (19, 1), (20, 2), (58, 1), (60, 1), (64, 1), (66, 2), (67, 2), (71, 2), (72, 1), (74, 1), (80, 1), (115, 1), (130, 2), (470, 1)], [], [(0, 1), (1, 1), (2, 1), (6, 1), (12, 2), (15, 1), (18, 2), (19, 1), (20, 2), (58, 2), (60, 1), (67, 2), (71, 2), (74, 1), (80, 1), (470, 1)], [(1, 1), (2, 2), (6, 1), (9, 1), (11, 2), (12, 2), (14, 2), (15, 1), (16, 1), (18, 2), (19, 1), (20, 2), (58, 2), (60, 1), (67, 2), (71, 2), (74, 1), (80, 1), (470, 1)], [(0, 1), (1, 1), (2, 1), (7, 1), (12, 2), (15, 1), (20, 2), (58, 2), (60, 1), (67, 2), (71, 2), (74, 1), (80, 1), (470, 1)], [(0, 1), (1, 1), (2, 1), (6, 1), (8, 2), (10, 1), (12, 2), (15, 1), (20, 2), (58, 2), (60, 1), (67, 2), (71, 2), (74, 1), (80, 1), (470, 1)], [], [(6, 1), (8, 1), (9, 1), (10, 2), (11, 2), (12, 1), (14, 2), (16, 2), (18, 1), (19, 2), (58, 1), (71, 1), (74, 2), (80, 1), (115, 1), (130, 2)], [(1, 1), (2, 2), (8, 2), (10, 2), (12, 2), (14, 2), (15, 2), (16, 2), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 1), (115, 1), (130, 2)], [], [], [], [(1, 1), (2, 2), (6, 1), (8, 1), (9, 1), (10, 2), (11, 2), (12, 2), (14, 2), (16, 1), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 1)], [(1, 1), (2, 2), (6, 1), (8, 1), (9, 1), (10, 2), (12, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 1)], [(1, 1), (2, 2), (8, 2), (9, 1), (10, 2), (11, 2), (14, 1), (15, 2), (16, 2), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 1)], [(1, 1), (2, 2), (6, 1), (8, 1), (9, 1), (10, 2), (11, 2), (12, 2), (14, 2), (15, 2), (16, 2), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 1)], [(0, 1), (2, 2), (7, 1), (8, 1), (10, 2), (12, 2), (14, 2), (15, 2), (16, 1), (18, 2), (19, 1), (21, 1), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 1)], [(0, 2), (1, 1), (6, 2), (8, 2), (12, 2), (14, 1), (16, 1), (18, 2), (19, 1), (20, 1), (58, 2), (65, 2), (66, 2), (67, 1), (68, 1), (72, 1), (80, 2), (115, 2), (130, 1), (470, 2)], [], [], [], [(6, 2), (8, 2), (9, 2), (11, 1), (12, 1), (14, 2), (16, 1), (18, 2), (19, 1), (20, 1), (58, 1), (60, 1), (65, 2), (66, 2), (67, 1), (68, 1), (71, 2), (72, 1), (74, 1), (80, 2), (470, 2)], [(0, 2), (2, 1), (8, 1), (14, 2), (15, 1), (16, 1), (18, 2), (19, 1), (20, 1), (58, 1), (60, 1), (65, 1), (66, 1), (67, 1), (68, 2), (71, 2), (72, 2), (74, 1), (80, 2), (470, 2)], [(6, 2), (8, 2), (9, 2), (12, 1), (14, 2), (15, 1), (16, 1), (18, 2), (19, 1), (20, 1), (58, 1), (60, 1), (65, 1), (66, 2), (67, 1), (68, 2), (71, 2), (72, 1), (74, 1), (80, 2), (470, 2)], [], [], [], [], [], [], [(1, 1), (2, 2), (6, 2), (10, 1), (12, 2), (14, 2), (15, 2), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 2), (115, 2), (130, 1)], [(1, 1), (2, 2), (6, 2), (9, 2), (10, 1), (11, 1), (12, 2), (15, 2), (16, 2), (18, 1), (19, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 2), (115, 2), (130, 1)], [(0, 2), (1, 2), (2, 2), (7, 2), (10, 1), (12, 2), (14, 2), (15, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 2), (115, 2), (130, 1)], [(0, 2), (1, 1), (2, 2), (5, 1), (6, 2), (8, 1), (12, 2), (14, 2), (15, 2), (58, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (80, 2), (115, 2), (130, 1)], [], [], [], [], [], [(1, 1), (2, 2), (6, 2), (9, 2), (10, 1), (11, 1), (12, 1), (15, 2), (18, 1), (19, 2), (58, 1), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (74, 2), (80, 2)], [(0, 2), (1, 1), (7, 2), (10, 1), (12, 1), (14, 2), (15, 2), (16, 1), (58, 1), (60, 2), (65, 1), (71, 1), (74, 2), (80, 2)], [(0, 2), (1, 1), (6, 2), (8, 1), (12, 1), (14, 2), (15, 2), (16, 1), (58, 1), (60, 2), (67, 1), (71, 1), (74, 2), (80, 2)], [(0, 2), (1, 1), (7, 2), (10, 1), (11, 1), (12, 1), (14, 2), (15, 2), (58, 1), (60, 2), (65, 1), (68, 2), (71, 1), (73, 1), (74, 2), (80, 2)], [(1, 1), (2, 2), (6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (15, 2), (58, 1), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (80, 2)], [], [], [], [], [(0, 2), (2, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (15, 1), (16, 1), (18, 1), (19, 2), (20, 2), (51, 1), (58, 2), (60, 1), (67, 2), (71, 2), (74, 1), (115, 1), (130, 2), (470, 1)], [], [], [(6, 1), (9, 1), (10, 2), (11, 1), (15, 1), (16, 2), (18, 2), (19, 1), (20, 1), (58, 1), (60, 1), (64, 2), (65, 1), (66, 2), (67, 1), (68, 2), (71, 2), (72, 1), (74, 1), (99, 1), (115, 2), (130, 1), (470, 2)], [], [], [], [], [], [(1, 2), (2, 1), (8, 2), (12, 1), (14, 1), (15, 1), (16, 1), (18, 2), (19, 1), (58, 1), (60, 1), (65, 2), (66, 2), (68, 1), (71, 2), (72, 1), (74, 1), (115, 2), (130, 1)], [], [(1, 2), (2, 1), (6, 2), (8, 2), (12, 1), (14, 1), (15, 1), (16, 2), (18, 2), (19, 1), (58, 1), (60, 1), (65, 2), (66, 2), (68, 1), (71, 2), (72, 1), (74, 1), (114, 1), (115, 2)], [(0, 1), (1, 2), (2, 1), (5, 2), (7, 2), (8, 2), (9, 2), (10, 1), (11, 1), (12, 1), (14, 1), (15, 1), (16, 2), (18, 1), (19, 1), (60, 1), (65, 2), (66, 2), (68, 1), (71, 2), (72, 1), (74, 1), (293, 1)], [(1, 1), (2, 2), (6, 1), (8, 1), (12, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (60, 2), (65, 1), (66, 1), (68, 2), (71, 1), (72, 2), (74, 2), (172, 1), (173, 2)], [(0, 1), (1, 1), (2, 1), (8, 2), (9, 2), (14, 2), (15, 2), (16, 1), (18, 1), (19, 2), (60, 2), (65, 1), (66, 2), (68, 2), (71, 1), (72, 1), (74, 2), (233, 1), (234, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb81 : List (List (Nat × Nat)) := [[(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (9, 2), (12, 1), (13, 2), (14, 2), (16, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (9, 2), (12, 1), (13, 2), (14, 2), (58, 1), (60, 2), (73, 1), (115, 1), (127, 1), (131, 2), (137, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (9, 2), (12, 2), (16, 2), (18, 2), (60, 1), (67, 1), (73, 1), (115, 2), (121, 2), (127, 2), (131, 1), (137, 1), (173, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (9, 2), (10, 2), (12, 2), (16, 2), (18, 2), (60, 1), (67, 1), (73, 1), (115, 2), (121, 2), (127, 2), (131, 1), (137, 1), (234, 1)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (9, 1), (14, 2), (16, 2), (58, 1), (73, 2), (137, 2)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (9, 1), (13, 1), (14, 2), (16, 2), (57, 2), (58, 1), (73, 2), (75, 1), (137, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (9, 1), (14, 2), (16, 2), (18, 1), (58, 1), (73, 2), (137, 2)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (9, 1), (13, 1), (14, 2), (16, 2), (58, 1), (73, 2), (137, 2)], [], [], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (12, 1), (13, 1), (14, 1), (58, 1), (60, 2), (64, 1), (73, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (9, 1), (12, 1), (13, 1), (14, 1), (16, 2), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [], [(1, 1), (2, 1), (5, 2), (6, 2), (9, 1), (12, 1), (13, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (9, 1), (12, 1), (13, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(1, 1), (6, 2), (9, 1), (12, 1), (13, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (9, 1), (14, 2), (16, 2), (58, 2), (67, 2), (73, 2), (121, 1), (137, 1)], [(0, 1), (1, 1), (5, 2), (12, 1), (14, 1), (58, 1), (73, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (12, 1), (14, 1), (58, 2), (60, 2), (73, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (12, 1), (14, 1), (16, 2), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(0, 1), (1, 1), (4, 1), (5, 2), (12, 1), (14, 1), (16, 2), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [], [], [(0, 1), (1, 1), (5, 2), (12, 2), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(0, 1), (1, 1), (5, 2), (12, 1), (14, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [(0, 1), (1, 1), (5, 2), (12, 1), (21, 1), (58, 1), (60, 2), (115, 1), (127, 1), (131, 2), (137, 1)], [], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (9, 2), (12, 1), (13, 2), (14, 2), (60, 2), (73, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [], [], [], [], [], [(0, 2), (1, 1), (5, 1), (6, 1), (7, 2), (13, 2), (58, 1), (60, 2), (117, 1), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (9, 2), (13, 2), (115, 1), (137, 2)], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 1), (13, 2), (58, 1), (64, 2), (120, 1), (137, 2)], [], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (12, 1), (14, 1), (16, 1), (60, 2), (73, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (7, 1), (9, 2), (12, 1), (14, 2), (60, 2), (73, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [(9, 2), (10, 1), (12, 1), (14, 2), (60, 2), (73, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [], [], [], [(2, 2), (5, 1), (9, 2), (12, 1), (14, 2), (16, 1), (60, 2), (66, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (9, 2), (12, 1), (14, 2), (16, 1), (60, 2), (65, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [(9, 2), (12, 1), (14, 2), (16, 1), (60, 2), (67, 1), (115, 1), (127, 1), (131, 2), (137, 2)], [], [], [], [(2, 2), (3, 1), (5, 1), (9, 2), (12, 1), (14, 2), (60, 2), (64, 1), (115, 1), (120, 2), (127, 1), (130, 1), (131, 2), (137, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (58, 1), (60, 2), (127, 1), (137, 2)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (9, 2), (12, 1), (13, 2), (14, 2), (16, 2), (51, 1), (58, 2), (60, 2), (73, 2), (115, 1), (127, 1), (131, 2)], [], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (6, 1), (13, 2), (16, 1), (64, 2), (73, 1), (157, 1)], [], [], [], [(0, 2), (1, 2), (4, 2), (5, 1), (6, 1), (9, 1), (12, 1), (13, 2), (57, 1), (58, 2), (60, 2), (64, 2), (67, 2), (73, 1), (75, 2), (115, 1), (120, 1), (127, 1), (130, 2), (131, 2), (470, 1)], [(1, 1), (12, 2), (13, 1), (14, 2), (58, 1), (60, 1), (73, 1), (115, 2), (127, 2), (131, 1)], [(1, 1), (12, 2), (14, 2), (16, 1), (57, 1), (58, 1), (60, 1), (115, 2), (127, 2), (131, 1)], [], [(1, 1), (4, 1), (7, 2), (12, 2), (13, 1), (14, 2), (16, 1), (18, 2), (58, 1), (60, 1), (64, 1), (115, 2), (120, 2), (127, 2), (131, 1), (293, 1)], [(1, 1), (7, 1), (12, 1), (14, 1), (16, 2), (58, 2), (60, 2), (67, 2), (115, 1), (121, 1), (127, 1), (131, 2), (172, 1), (173, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (10, 1), (12, 1), (14, 1), (16, 2), (58, 2), (60, 2), (67, 2), (115, 1), (121, 1), (127, 1), (131, 2), (233, 1), (234, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb82 : List (List (Nat × Nat)) := [[(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (9, 2), (12, 1), (13, 1), (68, 1), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 2), (5, 1), (8, 2), (9, 1), (11, 1), (12, 1), (13, 1), (58, 2), (68, 1), (115, 1), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (5, 2), (8, 2), (9, 1), (11, 1), (12, 1), (13, 1), (58, 2), (68, 1), (115, 1), (117, 1), (127, 1), (173, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (5, 2), (8, 2), (9, 1), (11, 1), (12, 1), (13, 1), (58, 2), (68, 1), (115, 1), (117, 1), (127, 1), (233, 1), (291, 2)], [], [], [], [(3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (11, 2), (12, 2), (58, 1), (68, 2), (115, 2), (117, 1), (121, 1), (127, 2), (233, 1), (234, 2), (291, 2)], [], [], [], [(3, 2), (4, 1), (6, 1), (9, 2), (11, 2), (12, 2), (13, 2), (58, 1), (60, 2), (64, 2), (77, 1), (115, 2), (117, 1), (121, 1), (127, 2), (233, 1), (234, 2), (291, 2)], [], [], [(2, 2), (3, 2), (4, 1), (6, 1), (9, 1), (13, 2), (15, 2), (20, 1), (58, 1), (68, 2), (115, 2), (117, 1), (121, 1), (127, 2), (233, 1), (234, 2), (291, 2)], [], [], [], [(3, 2), (4, 1), (6, 1), (9, 2), (11, 2), (12, 2), (13, 2), (58, 1), (68, 2), (115, 2), (117, 1), (121, 1), (127, 2), (233, 1), (234, 2), (291, 2)], [(3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (11, 2), (12, 2), (13, 2), (58, 1), (68, 2), (115, 2), (117, 1), (121, 1), (127, 2), (233, 1), (234, 2), (291, 2)], [], [(0, 1), (2, 1), (5, 1), (8, 1), (13, 2), (64, 1), (68, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (2, 1), (5, 1), (8, 1), (9, 1), (11, 2), (13, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (13, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [], [(0, 1), (2, 1), (5, 1), (8, 1), (13, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (8, 2), (13, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(3, 2), (4, 1), (6, 1), (8, 2), (9, 2), (11, 2), (12, 2), (58, 1), (68, 2), (115, 2), (117, 1), (121, 2), (127, 1), (233, 1), (234, 2), (291, 2)], [], [(2, 2), (5, 1), (9, 1), (12, 2), (58, 1), (68, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (2, 2), (5, 1), (9, 1), (11, 2), (12, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (2, 1), (3, 1), (5, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (12, 2), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (12, 2), (21, 1), (117, 1), (121, 1), (127, 1), (233, 1), (234, 2), (291, 2)], [], [], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 1), (9, 2), (11, 1), (13, 1), (58, 2), (60, 1), (115, 1), (127, 2)], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (13, 1), (117, 1), (127, 2)], [], [], [(0, 1), (3, 1), (4, 2), (6, 2), (12, 2), (13, 1), (15, 1), (20, 2), (121, 1), (127, 2), (173, 2), (174, 1)], [(0, 1), (3, 1), (4, 2), (6, 2), (12, 2), (13, 1), (15, 1), (20, 2), (121, 1), (127, 2), (234, 2), (236, 1)], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (9, 1), (11, 1), (12, 1), (58, 2), (68, 1), (115, 1), (127, 2)], [], [], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (9, 2), (15, 1), (58, 2), (68, 1), (115, 1), (127, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (17, 1), (58, 2), (68, 1), (115, 1), (127, 2)], [], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (8, 2), (9, 1), (11, 1), (12, 1), (58, 2), (66, 1), (115, 1), (127, 2)], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (9, 2), (11, 1), (58, 2), (73, 1), (115, 1), (127, 2)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (8, 1), (9, 2), (11, 1), (58, 2), (71, 1), (115, 1), (127, 2)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (127, 2), (130, 1)], [], [], [(0, 1), (5, 2), (8, 1), (9, 2), (11, 2), (12, 2), (13, 2), (17, 2), (51, 1), (58, 1), (68, 2), (115, 2), (117, 2), (121, 2), (233, 2), (234, 1), (291, 1)], [], [], [], [], [(3, 2), (4, 1), (6, 1), (9, 2), (11, 1), (12, 1), (13, 1), (64, 2), (68, 1), (392, 1)], [], [], [(0, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (13, 1), (15, 1), (17, 2), (20, 2), (117, 2), (121, 2), (130, 2), (233, 2), (234, 1), (291, 1), (470, 1)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (9, 2), (58, 2), (68, 1), (115, 1), (117, 1), (121, 1), (233, 1), (234, 2), (291, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (9, 2), (11, 1), (57, 1), (58, 2), (115, 1), (117, 1), (121, 1), (233, 1), (234, 2), (291, 2)], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 1), (8, 2), (114, 1), (117, 1), (121, 1), (233, 1), (234, 2), (291, 2)], [], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 2), (117, 1), (121, 2), (172, 1), (173, 2), (233, 1), (234, 2), (291, 2)], [(0, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (117, 1), (121, 2), (233, 2), (234, 1), (291, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb83 : List (List (Nat × Nat)) := [[(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 1), (18, 1), (19, 1), (58, 2), (60, 1), (117, 2), (137, 1), (173, 1), (233, 1), (234, 2)], [(1, 1), (3, 2), (4, 1), (8, 2), (10, 2), (11, 2), (18, 1), (19, 1), (58, 2), (60, 1), (66, 1), (117, 2), (137, 1), (173, 1), (233, 1), (234, 2)], [(1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 1), (11, 2), (18, 1), (19, 1), (58, 2), (66, 1), (137, 1), (173, 1), (233, 1), (234, 2)], [], [(3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (10, 1), (11, 2), (18, 1), (19, 1), (60, 2), (66, 1), (117, 1), (121, 1), (137, 1), (233, 2), (234, 2)], [], [], [], [], [(3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (10, 2), (11, 1), (19, 2), (60, 1), (66, 2), (117, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [], [], [], [], [], [], [(3, 1), (4, 2), (7, 1), (8, 1), (10, 2), (11, 1), (18, 2), (19, 2), (60, 1), (66, 2), (117, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [], [(1, 1), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 1), (8, 2), (10, 1), (11, 1), (18, 2), (19, 2), (60, 1), (66, 2), (117, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [(3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (10, 2), (11, 1), (18, 2), (19, 2), (60, 1), (66, 2), (117, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (8, 2), (11, 1), (18, 2), (19, 2), (58, 2), (60, 2), (66, 2), (117, 1), (137, 2), (173, 1), (233, 1), (234, 2)], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 1), (8, 1), (10, 2), (18, 2), (64, 1), (66, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 2), (9, 1), (10, 1), (11, 2), (18, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [(8, 1), (18, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 1), (8, 1), (10, 2), (18, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 1), (8, 1), (10, 1), (18, 2), (58, 1), (60, 2), (117, 1), (121, 1), (137, 1), (173, 2)], [(3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (10, 2), (11, 1), (19, 2), (60, 1), (66, 2), (117, 2), (137, 1), (233, 2), (234, 1)], [(3, 1), (4, 2), (11, 1), (19, 2), (60, 1), (66, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [], [(6, 2), (7, 1), (8, 1), (19, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (6, 2), (7, 1), (8, 1), (10, 1), (19, 2), (58, 1), (60, 2), (117, 1), (121, 1), (137, 1), (173, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (9, 2), (10, 1), (11, 1), (14, 1), (15, 1), (16, 2), (19, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [(0, 1), (1, 1), (5, 2), (10, 2), (11, 1), (19, 2), (58, 1), (60, 2), (117, 1), (121, 1), (137, 1), (173, 2)], [], [(0, 1), (1, 1), (5, 2), (9, 2), (10, 2), (11, 1), (14, 1), (19, 2), (58, 1), (60, 2), (117, 1), (121, 1), (137, 1), (173, 2)], [], [], [], [(0, 1), (1, 1), (3, 2), (4, 1), (8, 2), (10, 2), (11, 2), (18, 1), (58, 1), (60, 1), (66, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 1), (18, 1), (58, 2), (60, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [], [(0, 1), (1, 1), (5, 2), (7, 2), (8, 2), (9, 2), (11, 1), (18, 1), (58, 1), (60, 2), (115, 1), (117, 1), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (8, 2), (9, 2), (11, 1), (18, 1), (58, 2), (60, 1), (117, 1), (137, 2), (173, 1), (174, 1), (233, 1), (234, 2)], [], [(1, 2), (2, 1), (3, 2), (5, 2), (8, 2), (10, 1), (11, 1), (18, 1), (58, 1), (64, 2), (121, 1), (137, 2), (173, 2), (181, 1)], [], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (10, 2), (11, 2), (19, 1), (58, 1), (60, 1), (66, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [(1, 2), (2, 2), (5, 1), (10, 1), (11, 2), (19, 1), (58, 1), (60, 1), (66, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [(1, 2), (2, 2), (5, 1), (9, 1), (10, 1), (11, 1), (14, 2), (16, 1), (19, 1), (58, 1), (60, 1), (66, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [(3, 2), (4, 1), (11, 2), (22, 1), (60, 2), (66, 1), (117, 1), (137, 2)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (11, 2), (14, 2), (15, 2), (16, 1), (19, 1), (58, 1), (60, 1), (65, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [(1, 2), (6, 1), (7, 2), (8, 2), (9, 1), (10, 2), (11, 2), (14, 2), (19, 1), (58, 1), (60, 1), (73, 1), (117, 2), (121, 2), (137, 2), (173, 2), (233, 1), (234, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (10, 1), (60, 2), (80, 1), (117, 1), (137, 2)], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 1), (9, 1), (10, 1), (11, 2), (14, 2), (19, 1), (58, 1), (60, 2), (117, 1), (121, 2), (130, 1), (137, 2), (173, 2), (233, 1), (234, 2)], [], [], [(2, 2), (3, 2), (4, 1), (5, 1), (6, 1), (7, 2), (10, 1), (11, 1), (18, 2), (19, 1), (51, 1), (60, 1), (66, 2), (117, 2), (121, 1), (233, 1), (234, 2)], [], [], [], [], [], [(1, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 2), (11, 2), (14, 2), (18, 1), (19, 2), (58, 2), (60, 1), (64, 2), (66, 1), (117, 2), (121, 1), (173, 1), (216, 1), (233, 2), (234, 1)], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (8, 2), (9, 2), (11, 1), (14, 1), (18, 1), (19, 2), (58, 2), (60, 1), (117, 2), (121, 2), (130, 2), (173, 1), (470, 1)], [(1, 2), (2, 2), (5, 1), (8, 1), (10, 1), (11, 2), (58, 1), (60, 1), (66, 1), (117, 2), (121, 1), (173, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (57, 1), (58, 1), (60, 1), (117, 2), (121, 1), (173, 2)], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (10, 1), (58, 1), (60, 2), (114, 1), (117, 1), (121, 1), (173, 2)], [(0, 1), (1, 1), (5, 2), (10, 2), (58, 1), (60, 2), (117, 1), (121, 2), (173, 1), (293, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb84 : List (List (Nat × Nat)) := [[(1, 1), (2, 2), (3, 2), (4, 2), (5, 1), (8, 2), (9, 2), (10, 2), (15, 2), (24, 1), (25, 2), (57, 1), (63, 2), (65, 1), (66, 2), (115, 2), (137, 1), (172, 1), (173, 2), (234, 1)], [(1, 1), (2, 2), (3, 2), (4, 2), (5, 1), (8, 2), (9, 2), (10, 2), (15, 1), (24, 1), (25, 2), (57, 1), (63, 2), (65, 2), (66, 2), (115, 2), (137, 1), (172, 1), (173, 2), (234, 1)], [(0, 1), (1, 1), (2, 1), (4, 2), (5, 1), (6, 2), (9, 1), (10, 2), (15, 1), (24, 1), (25, 2), (57, 1), (58, 2), (63, 2), (65, 2), (66, 2), (137, 1), (172, 1), (173, 2), (234, 1)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (15, 1), (24, 1), (25, 2), (57, 2), (58, 1), (63, 1), (67, 2), (115, 1), (121, 1), (137, 1), (172, 2), (173, 2)], [], [], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (15, 2), (25, 1), (57, 1), (58, 2), (63, 2), (67, 1), (115, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (15, 2), (24, 2), (25, 1), (58, 2), (67, 1), (115, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (15, 2), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (67, 1), (115, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (15, 2), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (67, 1), (115, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [(1, 1), (2, 1), (4, 2), (5, 2), (6, 1), (9, 1), (10, 2), (15, 2), (24, 2), (25, 1), (57, 2), (63, 1), (65, 1), (66, 2), (115, 1), (137, 2), (172, 1), (173, 2), (234, 1)], [(2, 1), (4, 1), (5, 2), (8, 1), (9, 2), (15, 2), (24, 2), (25, 1), (57, 1), (58, 2), (63, 2), (64, 1), (66, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (15, 2), (24, 2), (25, 1), (58, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [(0, 1), (4, 1), (5, 2), (8, 1), (9, 2), (15, 2), (24, 2), (25, 1), (58, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [(2, 1), (4, 1), (5, 2), (8, 1), (9, 2), (15, 2), (24, 2), (25, 1), (58, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [(1, 2), (2, 1), (3, 1), (4, 1), (5, 2), (8, 1), (9, 1), (10, 1), (15, 2), (24, 2), (25, 1), (57, 2), (58, 1), (63, 1), (65, 2), (66, 1), (67, 2), (115, 1), (121, 1), (137, 1), (234, 2)], [], [(0, 2), (2, 1), (3, 2), (6, 1), (8, 2), (9, 1), (57, 1), (63, 2), (115, 2), (137, 1), (172, 2), (173, 1)], [(58, 2), (60, 1), (65, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [(0, 2), (1, 2), (2, 1), (3, 1), (9, 2), (10, 1), (57, 2), (58, 2), (63, 1), (65, 1), (66, 1), (67, 2), (115, 1), (121, 1), (137, 1), (234, 2)], [(1, 1), (15, 2), (58, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [(1, 2), (2, 1), (3, 1), (9, 2), (10, 1), (15, 2), (57, 2), (58, 1), (63, 1), (65, 2), (66, 1), (67, 2), (115, 1), (121, 1), (137, 1), (234, 2)], [], [(58, 2), (67, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [], [(1, 2), (3, 2), (6, 2), (8, 1), (9, 1), (10, 1), (12, 1), (15, 2), (57, 2), (58, 1), (63, 1), (65, 2), (66, 1), (67, 2), (115, 1), (121, 1), (137, 1), (234, 2)], [], [], [], [], [], [(1, 2), (2, 2), (4, 2), (5, 1), (6, 2), (9, 2), (10, 1), (24, 1), (25, 2), (57, 1), (58, 2), (63, 2), (65, 2), (66, 1), (67, 1), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [], [], [(1, 2), (2, 2), (3, 2), (4, 2), (5, 1), (6, 2), (9, 2), (10, 1), (15, 1), (24, 1), (25, 2), (57, 1), (58, 2), (63, 2), (65, 1), (66, 2), (67, 1), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 1), (8, 2), (10, 1), (15, 1), (24, 1), (25, 2), (57, 1), (63, 2), (64, 2), (65, 1), (66, 2), (67, 1), (115, 1), (120, 1), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [], [(1, 1), (3, 1), (8, 2), (9, 2), (10, 2), (15, 1), (24, 1), (25, 2), (57, 2), (60, 2), (63, 1), (65, 2), (66, 2), (115, 1), (137, 2), (172, 1), (173, 2), (234, 1), (236, 1)], [(2, 2), (4, 2), (5, 1), (8, 2), (9, 1), (15, 1), (24, 1), (25, 2), (58, 1), (64, 2), (66, 1), (67, 2), (121, 1), (137, 2), (173, 2), (181, 1)], [], [], [], [(1, 2), (2, 2), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (10, 1), (57, 1), (58, 2), (63, 2), (65, 2), (66, 1), (67, 1), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [], [(1, 1), (3, 2), (9, 1), (10, 2), (57, 1), (58, 2), (63, 2), (65, 2), (66, 1), (67, 1), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [], [(1, 2), (3, 2), (4, 2), (9, 2), (10, 1), (12, 2), (17, 1), (57, 1), (58, 2), (63, 2), (65, 2), (66, 1), (67, 1), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [(2, 2), (3, 1), (9, 2), (22, 1), (57, 2), (63, 1), (115, 1), (137, 2)], [], [], [(1, 2), (3, 2), (6, 2), (8, 1), (9, 1), (10, 1), (57, 1), (58, 2), (63, 2), (65, 1), (66, 1), (67, 2), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [], [(1, 2), (3, 2), (6, 2), (8, 1), (9, 1), (10, 1), (57, 2), (58, 2), (60, 2), (63, 1), (65, 2), (66, 1), (67, 1), (71, 1), (115, 2), (121, 2), (137, 2), (172, 1), (173, 2), (234, 2)], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 1), (9, 2), (58, 2), (80, 1), (115, 1), (137, 2)], [], [(0, 2), (1, 2), (2, 1), (3, 1), (9, 2), (10, 1), (57, 2), (60, 2), (63, 1), (65, 2), (66, 1), (67, 1), (115, 1), (121, 2), (127, 1), (137, 2), (172, 1), (173, 2), (234, 2)], [], [(2, 1), (3, 2), (4, 2), (5, 2), (8, 1), (9, 2), (12, 1), (15, 1), (17, 2), (24, 2), (25, 1), (51, 1), (57, 1), (58, 1), (63, 2), (67, 2), (115, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 1), (10, 2), (12, 2), (24, 1), (25, 2), (58, 1), (64, 2), (65, 1), (67, 2), (115, 2), (121, 1), (172, 2), (173, 1), (234, 1), (274, 1)], [(1, 1), (2, 2), (3, 2), (4, 2), (5, 1), (8, 2), (9, 2), (10, 2), (12, 1), (15, 1), (17, 2), (24, 1), (25, 2), (57, 2), (58, 2), (63, 1), (65, 2), (66, 2), (115, 1), (121, 2), (234, 1), (470, 1)], [(1, 2), (3, 2), (8, 1), (9, 1), (10, 1), (15, 2), (57, 1), (58, 1), (63, 2), (65, 2), (66, 1), (67, 2), (115, 2), (121, 1), (234, 2)], [(1, 2), (3, 2), (6, 2), (8, 1), (9, 1), (10, 1), (57, 2), (58, 1), (63, 2), (65, 1), (66, 1), (67, 2), (115, 2), (121, 1), (234, 2)], [(0, 2), (1, 2), (2, 1), (3, 1), (9, 2), (10, 1), (57, 1), (58, 2), (63, 2), (65, 1), (66, 1), (67, 2), (114, 1), (115, 1), (121, 1), (234, 2)], [(0, 1), (1, 1), (3, 2), (5, 2), (9, 1), (10, 2), (57, 2), (58, 1), (63, 1), (64, 1), (65, 2), (66, 1), (67, 1), (115, 2), (120, 2), (121, 2), (234, 1), (293, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb85 : List (List (Nat × Nat)) := [[(0, 2), (2, 2), (5, 1), (6, 2), (9, 2), (12, 2), (19, 1), (22, 2), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (66, 1), (68, 2), (73, 2), (120, 1), (130, 2)], [], [], [], [], [], [(0, 1), (2, 2), (5, 1), (7, 2), (9, 2), (12, 2), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (65, 2), (66, 1), (67, 1), (68, 1), (73, 1)], [(0, 1), (2, 2), (5, 1), (7, 2), (9, 2), (12, 2), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (64, 1), (65, 2), (66, 1), (67, 1), (68, 1), (120, 2), (130, 1)], [(0, 1), (2, 2), (5, 1), (7, 2), (9, 2), (12, 2), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (64, 1), (65, 2), (66, 1), (67, 1), (73, 1), (120, 2), (130, 1)], [(5, 1), (7, 1), (12, 1), (22, 1), (24, 1), (25, 2), (34, 2), (64, 1), (65, 2), (67, 1), (68, 1), (73, 1), (120, 2), (130, 1)], [(0, 1), (7, 2), (9, 2), (12, 1), (19, 2), (22, 1), (24, 1), (34, 2), (64, 1), (65, 1), (67, 2), (68, 1), (73, 1), (120, 2), (130, 1)], [(0, 2), (2, 2), (5, 1), (6, 2), (9, 2), (12, 2), (18, 2), (19, 1), (22, 2), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (66, 1), (68, 2), (73, 2), (75, 1), (120, 1), (130, 2)], [(1, 2), (2, 2), (5, 1), (6, 1), (7, 1), (9, 2), (12, 2), (22, 2), (24, 1), (25, 2), (34, 2), (63, 2), (65, 2), (66, 1), (73, 2), (77, 1), (120, 1), (130, 2)], [(0, 2), (2, 2), (5, 1), (6, 1), (9, 2), (12, 2), (19, 1), (22, 2), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (66, 1), (68, 2), (73, 2), (120, 1), (130, 2)], [], [], [], [], [], [], [], [], [], [(0, 1), (5, 1), (6, 1), (7, 2), (9, 1), (12, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 2), (65, 2), (67, 1), (120, 1), (130, 2)], [(0, 2), (5, 1), (6, 1), (7, 2), (12, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 2), (67, 1), (73, 2)], [(0, 1), (2, 1), (5, 1), (6, 1), (7, 2), (9, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 2), (67, 1), (68, 2)], [(0, 1), (2, 1), (5, 1), (6, 1), (7, 2), (9, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1)], [(0, 1), (2, 1), (5, 1), (6, 1), (7, 2), (9, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 1), (66, 2), (67, 2)], [(0, 2), (2, 1), (6, 1), (7, 2), (9, 1), (12, 2), (19, 1), (22, 2), (63, 2), (64, 1), (66, 2), (120, 2), (121, 1), (130, 1)], [(0, 2), (1, 2), (2, 1), (5, 1), (9, 1), (19, 1), (22, 2), (24, 1), (25, 2), (34, 2), (60, 1), (65, 2), (66, 2), (68, 1)], [(0, 2), (5, 1), (12, 1), (19, 1), (22, 2), (24, 1), (25, 2), (34, 2), (58, 1), (72, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [(0, 1), (5, 1), (6, 2), (7, 2), (12, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (67, 1), (68, 2), (120, 1), (130, 2)], [(2, 1), (5, 1), (6, 2), (7, 2), (9, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (65, 2), (66, 2), (67, 1), (72, 1), (120, 1), (130, 2)], [(0, 1), (5, 1), (6, 2), (7, 2), (12, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (65, 2), (67, 1), (120, 1), (130, 2)], [(0, 1), (1, 1), (5, 1), (6, 2), (7, 1), (12, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (60, 2), (63, 1), (64, 2), (67, 1), (68, 2), (73, 2), (117, 1)], [(0, 1), (2, 1), (5, 1), (6, 2), (7, 2), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (58, 2), (63, 1), (64, 2), (65, 2), (66, 2), (67, 1), (72, 1), (73, 2), (115, 1)], [(0, 1), (5, 1), (6, 2), (7, 2), (12, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (65, 2), (67, 1), (73, 2), (120, 1)], [(0, 1), (2, 1), (5, 1), (6, 2), (7, 2), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (60, 2), (63, 1), (64, 2), (66, 2), (67, 1), (68, 2), (174, 1)], [(0, 1), (1, 1), (2, 1), (6, 2), (7, 2), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (60, 2), (63, 1), (64, 2), (65, 2), (66, 2), (67, 2), (68, 2), (236, 1)], [(0, 1), (1, 2), (2, 1), (5, 1), (6, 2), (7, 2), (9, 1), (19, 2), (22, 1), (24, 1), (25, 2), (34, 2), (63, 1), (64, 1), (65, 2), (66, 2), (67, 1), (181, 1)], [(0, 2), (2, 2), (7, 2), (9, 2), (12, 1), (19, 1), (22, 2), (64, 1), (65, 2), (66, 1), (67, 1), (73, 1), (120, 2), (130, 1)], [(0, 2), (2, 2), (7, 2), (9, 1), (12, 2), (19, 1), (22, 2), (64, 1), (65, 2), (66, 1), (67, 1), (68, 1), (120, 2), (130, 1)], [(0, 2), (1, 1), (2, 1), (7, 2), (9, 1), (12, 2), (19, 1), (22, 2), (64, 1), (65, 2), (66, 2), (67, 1), (120, 2), (130, 1)], [(0, 2), (2, 1), (5, 1), (7, 2), (9, 1), (12, 2), (19, 1), (22, 2), (64, 1), (66, 2), (120, 2), (130, 1)], [(0, 2), (2, 1), (9, 1), (12, 2), (19, 1), (22, 2), (65, 2), (66, 2), (67, 1), (73, 1)], [(0, 2), (2, 1), (7, 2), (9, 1), (10, 1), (12, 2), (19, 1), (22, 2), (66, 2), (73, 1)], [(0, 2), (2, 1), (7, 2), (9, 1), (12, 2), (15, 1), (19, 1), (22, 2), (65, 2), (66, 2), (67, 1), (68, 1)], [(0, 2), (2, 1), (7, 2), (9, 1), (12, 2), (17, 1), (19, 1), (22, 2), (66, 2), (68, 1)], [], [], [], [], [], [], [], [], [], [], [], [(6, 2), (7, 2), (17, 2), (63, 1), (64, 2), (65, 1), (67, 2), (68, 2), (73, 2), (120, 1), (121, 2), (130, 2), (314, 1)], [(0, 2), (2, 2), (6, 1), (9, 2), (12, 1), (44, 1), (63, 1), (66, 1), (68, 1), (73, 1), (120, 2), (130, 1)], [], [], [], [], [], [(1, 2), (2, 2), (5, 2), (6, 1), (7, 2), (9, 2), (17, 2), (18, 1), (24, 2), (25, 1), (34, 1), (63, 2), (64, 1), (65, 1), (66, 1), (67, 2), (73, 1), (75, 2), (470, 1)], [], [], [], [], [], [], [], [(2, 2), (5, 1), (6, 2), (7, 1), (9, 2), (12, 2), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 1), (66, 1), (67, 2), (73, 1)], [(2, 2), (5, 1), (6, 1), (7, 1), (9, 2), (12, 2), (13, 1), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 1), (66, 1), (67, 2), (68, 1)], [(0, 1), (2, 1), (5, 1), (6, 1), (7, 2), (9, 1), (18, 1), (19, 2), (24, 1), (25, 2), (34, 2), (63, 2), (64, 1), (65, 1), (66, 2), (67, 2)], [(2, 1), (5, 2), (6, 1), (7, 1), (9, 2), (24, 2), (25, 1), (34, 2), (63, 2), (64, 1), (65, 2), (66, 2), (67, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb86 : List (List (Nat × Nat)) := [[], [], [(0, 2), (2, 2), (3, 1), (5, 1), (9, 2), (12, 1), (15, 1), (16, 2), (21, 1), (60, 1), (65, 2), (68, 1), (73, 2), (115, 2), (137, 2)], [], [], [(1, 1), (2, 2), (4, 1), (5, 2), (7, 2), (9, 2), (11, 1), (12, 2), (16, 1), (20, 1), (21, 1), (57, 2), (114, 1), (115, 1), (137, 1)], [(1, 2), (2, 1), (4, 2), (5, 2), (7, 1), (9, 2), (11, 2), (15, 2), (20, 2), (57, 2), (60, 2), (65, 1), (68, 2), (73, 1), (114, 1), (115, 1), (137, 1)], [], [(1, 2), (2, 1), (4, 1), (5, 2), (7, 1), (9, 2), (11, 2), (15, 2), (16, 1), (20, 2), (57, 2), (60, 2), (65, 1), (68, 2), (73, 1), (114, 1), (115, 1), (137, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (7, 1), (9, 2), (11, 2), (12, 2), (15, 2), (16, 1), (20, 2), (21, 1), (57, 2), (60, 2), (65, 1), (68, 2), (73, 1), (114, 1), (115, 1), (137, 1)], [(0, 1), (1, 1), (2, 1), (4, 1), (5, 2), (7, 2), (9, 1), (11, 2), (12, 2), (15, 2), (16, 1), (19, 2), (20, 2), (21, 1), (25, 1), (57, 2), (60, 2), (65, 1), (68, 2), (73, 1), (114, 1), (115, 1), (137, 1)], [(0, 1), (2, 1), (5, 1), (11, 2), (15, 1), (18, 2), (19, 1), (20, 2), (21, 1), (57, 1), (60, 1), (65, 2), (68, 1), (73, 2), (75, 1), (114, 2), (115, 2), (137, 2)], [], [], [(0, 1), (2, 1), (5, 1), (11, 2), (15, 1), (19, 1), (20, 2), (21, 1), (57, 1), (60, 1), (65, 2), (68, 1), (73, 2), (114, 2), (115, 2), (137, 2)], [], [], [], [(0, 2), (2, 2), (3, 1), (5, 1), (9, 2), (12, 1), (15, 1), (16, 2), (21, 1), (57, 1), (60, 1), (65, 2), (68, 1), (73, 2), (114, 2), (115, 2), (137, 2)], [], [], [], [(0, 1), (1, 1), (2, 2), (5, 2), (7, 2), (9, 1), (11, 1), (12, 1), (20, 1), (21, 1), (57, 1), (64, 1), (73, 2), (114, 2), (137, 1)], [(0, 1), (1, 1), (2, 2), (5, 2), (7, 2), (9, 2), (11, 1), (12, 1), (16, 2), (20, 1), (21, 1), (57, 1), (114, 2), (137, 1)], [], [(0, 1), (1, 1), (4, 2), (5, 2), (7, 2), (9, 2), (11, 1), (20, 1), (21, 1), (57, 1), (114, 2), (137, 1)], [(0, 1), (1, 1), (3, 2), (5, 2), (7, 2), (9, 2), (11, 1), (20, 1), (21, 1), (57, 1), (114, 2), (137, 1)], [(0, 1), (1, 1), (2, 2), (4, 2), (7, 2), (9, 2), (11, 1), (20, 1), (21, 1), (57, 1), (114, 2), (137, 1)], [], [], [], [(1, 1), (4, 1), (5, 1), (12, 2), (16, 1), (21, 1), (57, 2), (114, 1), (137, 2)], [], [], [(4, 2), (5, 1), (12, 2), (15, 1), (21, 1), (57, 2), (114, 1), (137, 2)], [(1, 1), (2, 2), (4, 2), (5, 1), (7, 2), (11, 1), (20, 1), (57, 2), (114, 1), (137, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (5, 2), (9, 2), (12, 1), (15, 1), (16, 2), (20, 1), (21, 1), (60, 1), (65, 2), (68, 1), (73, 2), (115, 2), (137, 1)], [], [(0, 2), (4, 2), (5, 2), (9, 2), (15, 1), (21, 2), (60, 1), (65, 2), (68, 1), (73, 2), (115, 2), (137, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (9, 2), (15, 1), (21, 2), (60, 1), (65, 2), (68, 1), (73, 2), (115, 2), (137, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (9, 2), (11, 1), (12, 1), (16, 2), (20, 1), (21, 1), (60, 1), (115, 2), (137, 1)], [(0, 1), (1, 1), (2, 2), (5, 2), (7, 2), (9, 2), (11, 1), (12, 1), (16, 2), (20, 1), (21, 1), (58, 1), (115, 2), (137, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (9, 2), (15, 1), (16, 2), (21, 2), (60, 1), (65, 2), (68, 1), (115, 2), (137, 1)], [], [], [], [(0, 2), (1, 1), (2, 2), (4, 2), (5, 2), (7, 2), (9, 2), (11, 1), (20, 1), (21, 1), (115, 2), (137, 1), (174, 1)], [(0, 2), (1, 1), (2, 2), (4, 2), (5, 2), (7, 2), (9, 2), (11, 1), (20, 1), (21, 1), (115, 2), (137, 1), (236, 1)], [(0, 2), (4, 1), (5, 2), (12, 2), (15, 1), (21, 2), (60, 1), (64, 2), (65, 2), (68, 1), (115, 2), (137, 1), (181, 1)], [(1, 1), (3, 2), (4, 2), (5, 1), (7, 2), (11, 1), (12, 2), (15, 2), (16, 1), (20, 1), (60, 2), (65, 1), (68, 2), (73, 1), (115, 1), (137, 2)], [], [], [], [(1, 1), (2, 2), (4, 2), (5, 1), (7, 2), (9, 2), (11, 2), (15, 2), (20, 1), (60, 2), (65, 1), (68, 2), (73, 1), (115, 1), (137, 2)], [(1, 1), (3, 2), (7, 1), (9, 2), (10, 1), (11, 2), (15, 2), (20, 1), (60, 2), (65, 1), (68, 2), (73, 1), (115, 1), (137, 2)], [], [], [], [(1, 1), (2, 2), (3, 2), (5, 1), (7, 2), (9, 2), (11, 1), (15, 2), (16, 1), (20, 1), (60, 2), (65, 1), (66, 1), (68, 2), (115, 1), (137, 2)], [(1, 1), (2, 2), (4, 2), (5, 1), (7, 2), (9, 2), (11, 1), (15, 2), (16, 1), (20, 1), (60, 2), (65, 1), (115, 1), (137, 2)], [(1, 1), (3, 2), (7, 2), (9, 2), (11, 1), (15, 2), (16, 1), (20, 1), (60, 2), (67, 1), (115, 1), (137, 2)], [], [], [], [(4, 2), (5, 1), (12, 2), (21, 1), (130, 1), (137, 2)], [(2, 1), (3, 2), (12, 2), (21, 1), (127, 1), (137, 2)], [], [], [(1, 1), (2, 2), (7, 2), (9, 2), (12, 1), (15, 1), (16, 2), (20, 1), (21, 2), (57, 1), (60, 1), (65, 2), (68, 1), (73, 2), (114, 2), (115, 1), (314, 1)], [], [], [(0, 2), (4, 1), (9, 1), (12, 1), (16, 1), (57, 1), (64, 2), (73, 1), (114, 1), (115, 1), (157, 1)], [], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (5, 1), (7, 1), (9, 1), (12, 1), (16, 2), (18, 1), (19, 2), (21, 1), (57, 2), (65, 1), (67, 2), (68, 2), (73, 1), (75, 2), (114, 1), (130, 2), (470, 1)], [], [], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 2), (7, 1), (9, 2), (11, 2), (15, 2), (20, 2), (21, 1), (57, 1), (60, 2), (65, 1), (68, 2), (73, 1)], [], [(0, 1), (1, 1), (3, 2), (4, 2), (7, 2), (9, 2), (11, 1), (12, 2), (13, 1), (20, 1), (21, 2)], [(0, 2), (1, 1), (3, 1), (4, 2), (7, 2), (9, 1), (11, 2), (12, 1), (16, 2), (18, 1), (19, 2), (20, 2), (21, 1)], [(0, 1), (1, 2), (2, 1), (4, 2), (7, 1), (9, 2), (11, 2), (12, 1), (16, 2), (20, 2), (21, 1), (24, 1), (25, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb87 : List (List (Nat × Nat)) := [[], [], [], [], [], [(0, 1), (1, 1), (4, 2), (6, 1), (8, 1), (11, 1), (17, 2), (51, 1), (58, 1), (60, 2), (64, 1), (66, 2), (72, 1), (120, 2), (127, 1), (293, 1)], [(0, 1), (1, 1), (2, 1), (4, 2), (6, 2), (9, 1), (12, 2), (17, 2), (51, 1), (60, 2), (64, 1), (66, 1), (68, 1), (72, 2), (120, 2), (127, 1), (293, 1)], [(0, 1), (1, 1), (2, 1), (4, 1), (6, 2), (9, 1), (11, 1), (12, 2), (17, 2), (51, 1), (60, 2), (64, 1), (66, 1), (68, 1), (72, 2), (120, 2), (127, 1), (293, 1)], [], [(1, 1), (2, 2), (3, 2), (4, 2), (7, 2), (8, 2), (9, 1), (11, 1), (12, 2), (17, 2), (19, 1), (51, 1), (60, 2), (64, 1), (66, 1), (68, 1), (72, 2), (120, 2), (127, 1), (293, 1)], [(0, 1), (2, 1), (4, 2), (6, 2), (11, 1), (12, 2), (17, 2), (25, 1), (51, 1), (60, 2), (64, 1), (66, 1), (68, 1), (72, 2), (120, 2), (127, 1), (293, 1)], [], [(3, 1), (4, 2), (5, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (17, 2), (19, 2), (51, 1), (60, 1), (64, 1), (66, 2), (72, 1), (77, 1), (120, 1), (127, 2), (293, 2)], [], [], [(1, 1), (5, 1), (6, 1), (8, 2), (12, 2), (14, 1), (16, 2), (19, 2), (20, 1), (60, 1), (64, 2), (66, 2), (68, 2), (72, 1), (120, 1), (127, 2), (293, 2)], [], [], [], [(0, 2), (1, 1), (2, 1), (5, 1), (6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (60, 1), (64, 2), (66, 2), (68, 2), (72, 1), (120, 1), (127, 2), (293, 2)], [(0, 2), (1, 1), (2, 1), (5, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (60, 1), (64, 2), (66, 2), (68, 2), (72, 1), (120, 1), (127, 2), (293, 2)], [], [(0, 2), (1, 1), (3, 1), (4, 1), (6, 1), (8, 1), (9, 1), (12, 2), (17, 2), (51, 1), (58, 2), (60, 2), (66, 1), (68, 2), (72, 2), (120, 1), (127, 1), (293, 2)], [(0, 2), (1, 1), (3, 1), (4, 1), (6, 1), (8, 1), (9, 2), (11, 2), (12, 2), (17, 2), (51, 1), (58, 2), (60, 2), (64, 2), (66, 1), (72, 2), (120, 1), (127, 1), (293, 2)], [(1, 1), (2, 2), (3, 2), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (58, 2), (60, 2), (64, 2), (66, 1), (72, 2), (120, 1), (127, 1), (293, 2)], [], [(0, 2), (1, 1), (3, 1), (4, 1), (6, 1), (8, 1), (9, 1), (12, 2), (17, 2), (51, 1), (58, 2), (60, 2), (64, 2), (66, 1), (72, 2), (120, 1), (127, 1), (293, 2)], [(0, 2), (1, 1), (2, 2), (3, 2), (5, 1), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (58, 2), (60, 2), (64, 2), (66, 1), (72, 2), (120, 1), (127, 1), (293, 2)], [], [(0, 1), (2, 2), (3, 2), (5, 2), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (60, 2), (64, 1), (66, 1), (68, 1), (72, 2), (120, 2), (127, 2), (293, 1)], [], [], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (5, 1), (12, 2), (14, 1), (15, 1), (16, 2), (58, 1), (60, 1), (64, 1), (66, 2), (72, 1), (120, 2), (127, 2), (293, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 2), (8, 1), (58, 1), (60, 1), (64, 1), (66, 2), (72, 1), (120, 2), (127, 2), (293, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (5, 1), (12, 2), (14, 1), (58, 1), (60, 1), (64, 1), (66, 2), (72, 1), (120, 2), (127, 2), (293, 1)], [], [(1, 1), (2, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (66, 1), (68, 2), (72, 2), (127, 1)], [(1, 2), (2, 2), (3, 2), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (66, 1), (68, 2), (72, 2), (127, 1)], [(1, 1), (3, 1), (4, 1), (6, 1), (8, 1), (9, 1), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (66, 1), (68, 2), (72, 2), (127, 1)], [(1, 1), (2, 2), (3, 2), (4, 1), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (66, 1), (68, 2), (72, 2), (127, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 1), (6, 2), (9, 2), (11, 2), (12, 1), (17, 2), (51, 1), (58, 1), (60, 2), (127, 1)], [(1, 1), (2, 2), (3, 2), (4, 1), (8, 2), (9, 1), (11, 2), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (66, 1), (72, 2), (127, 1)], [], [(1, 1), (3, 2), (6, 1), (8, 1), (9, 1), (12, 1), (17, 2), (51, 1), (60, 2), (115, 1), (127, 1)], [(1, 1), (2, 2), (3, 2), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (64, 2), (66, 1), (72, 2), (120, 1), (127, 1)], [], [], [(1, 1), (2, 2), (3, 2), (8, 2), (9, 1), (12, 2), (17, 2), (51, 1), (58, 1), (60, 2), (64, 2), (66, 1), (72, 2), (127, 1), (181, 1)], [], [(2, 2), (3, 2), (5, 2), (6, 2), (11, 1), (17, 2), (51, 1), (58, 2), (60, 1), (66, 2), (68, 1), (72, 1), (127, 2)], [], [], [], [], [(2, 2), (3, 2), (5, 2), (6, 2), (9, 1), (14, 2), (16, 1), (17, 2), (51, 1), (58, 2), (60, 1), (66, 2), (68, 1), (72, 1), (127, 2)], [(3, 1), (4, 1), (5, 1), (8, 2), (9, 1), (12, 2), (51, 1), (58, 2), (60, 1), (66, 2), (68, 1), (72, 1), (127, 2)], [], [(2, 2), (3, 1), (4, 1), (5, 2), (6, 2), (11, 1), (17, 2), (51, 1), (58, 2), (60, 1), (72, 1), (127, 2)], [], [], [(2, 2), (3, 2), (5, 2), (6, 2), (9, 1), (11, 1), (14, 2), (17, 2), (51, 1), (58, 2), (60, 1), (66, 2), (72, 1), (73, 1), (127, 2)], [(1, 1), (4, 2), (7, 2), (11, 1), (71, 1), (127, 2)], [], [(2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (9, 1), (14, 2), (17, 2), (51, 1), (58, 2), (60, 1), (64, 1), (66, 2), (72, 1), (120, 2), (127, 2), (130, 1)], [], [], [], [(0, 2), (1, 2), (3, 2), (5, 2), (6, 2), (9, 2), (11, 2), (12, 1), (17, 1), (51, 1), (64, 2), (66, 2), (68, 2), (72, 1), (120, 1), (293, 2), (314, 1)], [], [], [], [(0, 2), (3, 2), (4, 1), (9, 2), (11, 1), (12, 1), (58, 2), (64, 1), (66, 1), (68, 1), (72, 2), (120, 1), (293, 1), (392, 1)], [], [], [(1, 2), (2, 1), (4, 1), (5, 2), (8, 2), (9, 1), (12, 2), (16, 1), (17, 1), (19, 1), (20, 2), (51, 1), (58, 2), (130, 2), (293, 1), (470, 1)], [], [], [], [], [], [], [(1, 1), (2, 2), (4, 1), (5, 2), (8, 1), (9, 2), (12, 1), (17, 1), (51, 2), (57, 1), (58, 2), (66, 2), (68, 1), (72, 1)], [(1, 1), (2, 1), (4, 2), (5, 2), (8, 2), (9, 1), (12, 2), (17, 1), (51, 2)], [], [(0, 1), (1, 1), (3, 1), (4, 1), (5, 2), (6, 1), (7, 1), (9, 1), (12, 2), (17, 1), (18, 1), (19, 2), (51, 2)], [(1, 2), (2, 1), (4, 1), (5, 2), (8, 1), (9, 2), (12, 2), (17, 1), (24, 1), (25, 2), (51, 2)], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb88 : List (List (Nat × Nat)) := [[], [], [], [(0, 2), (1, 2), (2, 2), (3, 2), (5, 1), (6, 2), (7, 1), (8, 1), (10, 1), (11, 2), (14, 2), (15, 1), (19, 2), (20, 2), (24, 2), (25, 1), (58, 1), (60, 1), (67, 2), (137, 2), (173, 1)], [], [(0, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (11, 2), (24, 1), (25, 2), (57, 2), (58, 2), (137, 1), (172, 1), (173, 2)], [(0, 2), (4, 1), (5, 1), (9, 1), (11, 1), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (67, 1), (137, 1), (172, 1), (173, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (11, 2), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (67, 1), (137, 1), (172, 1), (173, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (10, 1), (11, 2), (14, 1), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (67, 1), (137, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (14, 2), (15, 1), (20, 2), (24, 2), (25, 2), (57, 2), (58, 2), (60, 2), (67, 1), (137, 1), (172, 1), (173, 2)], [], [], [], [], [], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 1), (7, 1), (9, 1), (10, 1), (11, 1), (14, 1), (15, 2), (20, 1), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (67, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (5, 1), (6, 2), (7, 1), (8, 1), (10, 1), (11, 2), (14, 2), (15, 1), (19, 2), (20, 2), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (67, 2), (137, 2), (172, 2), (173, 1)], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (14, 1), (15, 2), (20, 1), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (67, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1), (11, 2), (19, 2), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (67, 2), (137, 2), (172, 2), (173, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (9, 1), (10, 1), (11, 1), (14, 1), (15, 2), (19, 1), (20, 1), (24, 2), (25, 1), (57, 1), (58, 2), (64, 1), (66, 2), (137, 1), (172, 2), (173, 1)], [(0, 2), (1, 2), (3, 2), (4, 1), (5, 2), (6, 2), (7, 1), (8, 1), (9, 2), (14, 1), (15, 2), (19, 1), (20, 1), (24, 2), (25, 1), (57, 1), (58, 2), (137, 1), (172, 2), (173, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (5, 1), (9, 2), (10, 1), (19, 2), (24, 2), (25, 1), (57, 1), (58, 2), (137, 1), (172, 2), (173, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 1), (5, 1), (9, 1), (10, 1), (11, 1), (14, 1), (15, 2), (19, 1), (20, 1), (24, 2), (25, 1), (57, 1), (58, 2), (137, 1), (172, 2), (173, 1)], [], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 1), (9, 1), (10, 2), (14, 2), (15, 1), (19, 2), (20, 2), (57, 1), (58, 2), (137, 1), (172, 2), (173, 1)], [], [], [(3, 2), (4, 1), (11, 2), (14, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (57, 2), (58, 2), (60, 2), (67, 1), (137, 2), (172, 1), (173, 2)], [], [(0, 1), (3, 2), (6, 1), (7, 2), (8, 2), (10, 1), (14, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (57, 2), (58, 1), (137, 2), (172, 1), (173, 2)], [], [], [], [(0, 1), (2, 2), (7, 2), (10, 1), (12, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (57, 2), (58, 1), (137, 2), (172, 1), (173, 2)], [], [(0, 2), (3, 1), (4, 2), (5, 1), (14, 2), (15, 1), (19, 1), (20, 2), (21, 1), (57, 2), (58, 1), (137, 2), (172, 1), (173, 2)], [(1, 2), (2, 2), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (14, 1), (15, 2), (19, 1), (20, 1), (24, 2), (25, 1), (58, 2), (60, 1), (67, 2), (137, 1)], [(0, 2), (1, 2), (5, 2), (9, 2), (10, 1), (11, 1), (19, 2), (24, 2), (25, 1), (58, 2), (60, 1), (67, 2), (137, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 1), (9, 1), (10, 2), (11, 1), (14, 2), (15, 1), (19, 2), (20, 2), (58, 2), (60, 1), (67, 2), (137, 1)], [(1, 2), (2, 2), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1), (11, 1), (14, 1), (15, 2), (19, 1), (20, 1), (24, 2), (25, 1), (58, 2), (60, 1), (137, 1)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (14, 2), (15, 1), (19, 2), (20, 2), (58, 2), (60, 1), (66, 1), (67, 2), (137, 1)], [(1, 2), (3, 2), (4, 1), (5, 1), (9, 1), (10, 1), (11, 1), (14, 1), (15, 2), (19, 1), (20, 1), (24, 2), (25, 1), (58, 2), (117, 1), (137, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 1), (5, 1), (9, 1), (10, 2), (11, 1), (14, 2), (15, 1), (19, 2), (20, 2), (58, 2), (60, 1), (64, 2), (66, 1), (67, 2), (120, 1), (137, 1)], [], [(0, 2), (1, 1), (3, 1), (4, 2), (10, 2), (11, 1), (14, 2), (15, 1), (19, 2), (20, 2), (58, 2), (137, 1), (236, 1)], [], [], [], [(2, 1), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (8, 2), (10, 1), (11, 2), (14, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (58, 1), (60, 2), (67, 1), (137, 2)], [], [(3, 2), (4, 1), (11, 2), (14, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (58, 1), (60, 2), (67, 1), (137, 2)], [], [(1, 2), (3, 2), (4, 2), (9, 1), (11, 1), (19, 2), (20, 1), (24, 1), (25, 2), (58, 1), (60, 2), (67, 1), (137, 2)], [], [(0, 1), (2, 1), (4, 1), (9, 1), (10, 2), (11, 2), (14, 2), (15, 1), (19, 1), (20, 2), (22, 1), (58, 1), (60, 2), (67, 1), (137, 2)], [], [(3, 2), (4, 1), (6, 1), (7, 2), (8, 2), (10, 1), (11, 2), (14, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (58, 1), (60, 2), (65, 1), (137, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (11, 2), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (58, 1), (60, 2), (66, 2), (67, 1), (73, 1), (137, 2)], [], [(0, 2), (2, 1), (6, 1), (7, 2), (8, 2), (9, 1), (14, 2), (15, 1), (19, 1), (20, 2), (80, 1), (137, 2)], [(4, 1), (9, 1), (11, 1), (15, 2), (19, 2), (20, 1), (24, 1), (25, 2), (58, 1), (60, 2), (64, 1), (66, 2), (67, 1), (120, 2), (130, 1), (137, 2)], [], [], [], [(0, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 1), (9, 2), (10, 2), (11, 2), (14, 2), (15, 1), (19, 1), (20, 2), (24, 1), (25, 2), (57, 1), (60, 1), (67, 2), (172, 2), (173, 1), (314, 1)], [], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (11, 1), (14, 2), (15, 1), (19, 2), (20, 2), (24, 2), (25, 1), (57, 1), (64, 2), (66, 1), (172, 1), (173, 1), (216, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 2), (5, 2), (9, 1), (10, 2), (11, 1), (14, 2), (15, 2), (20, 1), (57, 2), (60, 1), (64, 2), (66, 1), (67, 2), (120, 1), (130, 2), (172, 1), (173, 2), (470, 1)], [], [], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (5, 1), (9, 2), (10, 1), (11, 2), (14, 1), (15, 2), (19, 1), (20, 1), (57, 1), (60, 2), (67, 1)], [(1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (8, 1), (9, 1), (10, 1), (14, 2), (15, 1), (20, 2)], [(0, 2), (1, 1), (3, 2), (4, 2), (5, 2), (10, 1), (11, 2), (13, 1), (15, 2), (19, 1), (20, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb89 : List (List (Nat × Nat)) := [[], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (18, 2), (19, 2), (58, 1), (60, 1), (63, 1), (65, 2), (72, 2), (137, 2), (234, 1)], [(1, 1), (5, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (18, 1), (19, 1), (25, 1), (57, 2), (58, 1), (60, 1), (63, 2), (65, 2), (72, 2), (137, 1), (233, 1), (234, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 1), (9, 2), (10, 1), (18, 1), (19, 1), (25, 1), (57, 2), (60, 1), (63, 2), (65, 2), (137, 1), (233, 1), (234, 2)], [(1, 1), (5, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (18, 1), (19, 1), (25, 1), (57, 2), (58, 1), (63, 2), (72, 2), (137, 1), (233, 1), (234, 2)], [(1, 1), (5, 2), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (18, 1), (19, 1), (25, 1), (57, 2), (60, 1), (63, 2), (65, 2), (137, 1), (233, 1), (234, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (18, 2), (19, 1), (57, 2), (58, 2), (60, 2), (63, 2), (65, 1), (72, 1), (137, 1), (233, 1), (234, 2)], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (18, 2), (19, 2), (57, 1), (58, 1), (60, 1), (63, 2), (65, 2), (72, 2), (137, 2), (233, 2), (234, 1)], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (9, 2), (10, 2), (11, 1), (12, 1), (18, 2), (19, 2), (57, 1), (58, 1), (60, 1), (63, 1), (65, 2), (72, 2), (137, 2), (233, 2), (234, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (18, 2), (19, 2), (57, 1), (58, 1), (60, 1), (63, 1), (65, 2), (72, 2), (137, 2), (233, 2), (234, 1)], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (7, 1), (8, 2), (9, 2), (10, 2), (18, 1), (25, 1), (57, 1), (60, 2), (63, 1), (65, 1), (137, 2), (233, 2), (234, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (9, 1), (10, 2), (11, 1), (12, 2), (18, 2), (57, 1), (58, 2), (63, 1), (64, 1), (72, 1), (137, 1), (233, 2), (234, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 2), (18, 2), (57, 1), (58, 2), (63, 2), (72, 1), (137, 1), (233, 2), (234, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (18, 2), (57, 1), (58, 2), (63, 2), (72, 1), (137, 1), (233, 2), (234, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (6, 1), (7, 1), (9, 1), (10, 2), (11, 2), (12, 2), (18, 2), (57, 1), (58, 2), (63, 2), (72, 1), (137, 1), (233, 2), (234, 1)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (7, 2), (9, 1), (10, 2), (19, 2), (25, 2), (57, 1), (60, 2), (63, 2), (65, 1), (137, 1), (233, 2), (234, 1)], [], [], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (18, 1), (25, 2), (57, 2), (60, 1), (63, 1), (65, 2), (137, 2), (233, 1), (234, 2)], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (9, 2), (10, 1), (12, 2), (18, 1), (25, 2), (57, 2), (58, 2), (60, 2), (63, 1), (65, 1), (72, 1), (137, 2), (233, 1), (234, 2)], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (9, 1), (10, 1), (12, 2), (14, 1), (18, 1), (25, 2), (57, 2), (60, 1), (63, 1), (65, 2), (137, 2), (233, 1), (234, 2)], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 2), (7, 2), (9, 1), (10, 1), (11, 2), (12, 1), (21, 1), (57, 2), (58, 1), (63, 1), (72, 2), (137, 2), (233, 1), (234, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (18, 2), (58, 2), (60, 1), (63, 2), (65, 2), (72, 1), (137, 1)], [(6, 1), (18, 2), (63, 2), (137, 1)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (11, 1), (12, 1), (19, 2), (25, 2), (58, 1), (60, 2), (63, 2), (65, 1), (72, 2), (137, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 1), (11, 2), (12, 2), (18, 2), (58, 2), (60, 1), (63, 2), (72, 1), (137, 1)], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (8, 2), (9, 1), (19, 2), (25, 2), (58, 1), (60, 2), (63, 2), (65, 1), (137, 1)], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 1), (11, 2), (12, 2), (18, 2), (58, 2), (63, 2), (72, 1), (117, 1), (137, 1)], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (11, 1), (19, 2), (25, 2), (60, 2), (63, 2), (65, 1), (115, 1), (137, 1)], [], [(0, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (7, 1), (11, 1), (19, 2), (25, 2), (60, 2), (63, 2), (65, 1), (137, 1), (174, 1)], [], [], [], [], [], [(1, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 1), (8, 1), (9, 2), (11, 2), (12, 2), (18, 1), (25, 2), (58, 2), (60, 1), (63, 1), (65, 2), (72, 1), (137, 2)], [], [(1, 2), (5, 1), (6, 2), (7, 2), (9, 2), (10, 1), (11, 2), (12, 2), (18, 1), (25, 2), (58, 2), (60, 1), (63, 1), (65, 2), (72, 1), (137, 2)], [], [(1, 2), (5, 1), (6, 2), (11, 1), (12, 1), (17, 1), (18, 1), (25, 2), (58, 2), (60, 1), (63, 1), (65, 2), (72, 1), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (9, 2), (11, 1), (12, 1), (22, 1), (58, 1), (60, 2), (63, 1), (65, 1), (72, 2), (137, 2)], [], [], [(1, 2), (5, 1), (6, 1), (8, 1), (9, 2), (11, 2), (12, 2), (18, 1), (25, 2), (58, 2), (60, 1), (63, 1), (65, 1), (67, 1), (72, 1), (137, 2)], [], [(1, 2), (5, 1), (6, 2), (7, 2), (8, 1), (9, 2), (11, 2), (12, 2), (18, 1), (25, 2), (71, 1), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (58, 1), (60, 2), (65, 1), (72, 2), (80, 1), (137, 2)], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (11, 1), (12, 1), (18, 1), (25, 2), (58, 2), (60, 1), (65, 2), (72, 1), (127, 1), (137, 2)], [], [], [(6, 1), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (17, 2), (18, 1), (19, 2), (57, 1), (60, 1), (65, 2), (233, 2), (234, 1), (314, 1)], [], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 1), (10, 2), (12, 2), (18, 2), (19, 1), (25, 1), (57, 1), (58, 2), (60, 1), (63, 1), (64, 2), (65, 2), (72, 1), (233, 1), (234, 1), (274, 1)], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (7, 2), (9, 2), (10, 1), (17, 2), (25, 1), (57, 2), (58, 2), (60, 2), (65, 2), (67, 2), (72, 1), (233, 1), (234, 2), (470, 1)], [], [], [], [], [], [], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (11, 1), (12, 1), (25, 2), (57, 1), (58, 1), (60, 1), (65, 2), (72, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (11, 1), (12, 1), (25, 2), (58, 1), (60, 2), (65, 1), (72, 2)], [(1, 1), (2, 1), (3, 2), (4, 1), (5, 1), (6, 1), (8, 2), (11, 1), (12, 1), (13, 1), (25, 2), (58, 2), (60, 1), (65, 2), (72, 1)], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] + +def comb90 : List (List (Nat × Nat)) := [[(6, 1), (11, 1), (15, 1), (16, 2), (18, 2), (58, 2), (80, 1), (114, 2), (117, 1), (127, 2), (173, 1)], [(1, 1), (3, 1), (6, 1), (7, 2), (11, 2), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (117, 1), (120, 2), (121, 2), (173, 1)], [], [], [], [(1, 2), (3, 2), (6, 2), (7, 1), (11, 1), (18, 1), (58, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (117, 2), (120, 1), (121, 1), (173, 2)], [(3, 2), (8, 1), (9, 2), (11, 2), (18, 2), (57, 1), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 2), (114, 2), (115, 1), (120, 1), (121, 1), (127, 2), (173, 1)], [], [], [], [], [(1, 1), (3, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1), (57, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (71, 1), (72, 1), (74, 2), (75, 1), (80, 1), (114, 1), (115, 2), (120, 2), (121, 2)], [(3, 1), (6, 1), (8, 1), (9, 2), (18, 1), (57, 1), (58, 1), (60, 2), (77, 1), (80, 1), (114, 1), (115, 1), (117, 1), (120, 2), (173, 2)], [(6, 1), (8, 1), (9, 2), (11, 1), (18, 1), (57, 1), (58, 1), (80, 1), (114, 1), (115, 1), (173, 2)], [(1, 1), (3, 1), (7, 2), (11, 2), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (117, 1), (120, 2), (121, 2), (173, 1)], [(0, 2), (1, 2), (3, 1), (7, 1), (8, 1), (9, 2), (12, 1), (15, 2), (18, 2), (20, 1), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (117, 1), (120, 2), (121, 2), (173, 1)], [(1, 1), (3, 1), (6, 1), (7, 2), (11, 2), (18, 2), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (117, 1), (120, 2), (121, 2), (173, 1)], [(1, 1), (3, 1), (7, 2), (8, 1), (11, 2), (18, 2), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (117, 1), (120, 2), (121, 2), (173, 1)], [], [], [], [], [(1, 1), (7, 2), (58, 2), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 1), (114, 1), (117, 1), (121, 2)], [(1, 1), (3, 1), (6, 2), (7, 2), (8, 1), (9, 2), (57, 2), (58, 2), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (115, 2), (117, 1), (120, 2), (121, 2)], [], [], [], [], [], [(1, 2), (3, 2), (6, 2), (7, 1), (8, 1), (9, 2), (11, 2), (57, 1), (58, 1), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 2), (115, 1), (120, 1), (121, 1)], [(1, 2), (3, 2), (6, 1), (7, 1), (8, 2), (9, 1), (57, 1), (58, 1), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 2), (115, 2), (117, 2), (120, 1), (121, 1)], [(6, 2), (7, 1), (8, 1), (9, 2), (15, 2), (16, 1), (57, 1), (80, 2), (114, 2), (115, 1), (117, 2), (127, 1)], [(0, 1), (1, 2), (7, 1), (12, 2), (57, 1), (80, 2), (114, 2), (115, 1), (117, 2), (127, 1)], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (57, 1), (80, 2), (114, 2), (115, 1), (117, 2), (127, 1)], [], [], [], [], [], [], [(1, 1), (3, 1), (7, 2), (8, 1), (9, 2), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 1), (115, 1), (120, 2), (121, 2), (127, 1), (173, 1)], [(1, 1), (3, 1), (6, 2), (7, 2), (8, 2), (9, 1), (12, 1), (15, 2), (16, 1), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 1), (115, 1), (120, 2), (121, 2), (127, 1), (173, 1)], [(1, 1), (3, 1), (7, 2), (8, 1), (9, 2), (15, 2), (16, 1), (18, 2), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 1), (115, 1), (120, 2), (121, 2), (127, 1), (173, 1)], [(1, 1), (3, 1), (6, 1), (7, 2), (8, 2), (9, 1), (11, 1), (57, 1), (58, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (115, 2), (120, 2), (121, 2)], [(1, 1), (3, 1), (6, 2), (7, 2), (8, 1), (9, 2), (57, 1), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (115, 1), (117, 1), (120, 2), (121, 2)], [(1, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 1), (57, 1), (58, 2), (60, 2), (63, 2), (64, 2), (66, 2), (67, 1), (72, 1), (80, 2), (114, 1), (115, 2), (117, 1), (120, 1), (121, 2)], [], [], [], [], [], [], [], [], [], [], [(1, 2), (3, 2), (6, 2), (7, 1), (8, 2), (9, 1), (18, 2), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 1), (115, 2), (117, 2), (120, 1), (121, 1), (173, 1)], [(1, 2), (3, 2), (8, 1), (9, 1), (10, 1), (18, 2), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 1), (115, 2), (117, 2), (120, 1), (121, 1), (173, 1)], [(1, 2), (3, 2), (6, 2), (7, 1), (8, 2), (9, 1), (11, 2), (16, 1), (18, 2), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 1), (115, 2), (117, 2), (120, 1), (121, 1), (173, 1)], [(1, 2), (3, 2), (7, 1), (8, 1), (9, 2), (11, 2), (12, 2), (17, 1), (18, 2), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 1), (115, 2), (117, 2), (120, 1), (121, 1), (173, 1)], [(0, 2), (3, 2), (6, 2), (8, 2), (12, 1), (15, 2), (16, 1), (18, 2), (22, 1), (57, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (80, 1), (114, 1), (115, 2), (117, 2), (120, 1), (121, 1), (173, 1)], [(1, 2), (3, 2), (6, 2), (7, 1), (11, 1), (18, 1), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (80, 2), (117, 2), (120, 1), (121, 1), (173, 2)], [(1, 2), (3, 2), (7, 1), (8, 2), (9, 1), (18, 1), (58, 2), (64, 2), (65, 1), (66, 1), (67, 2), (72, 2), (80, 2), (115, 2), (120, 1), (121, 1), (173, 2)], [(1, 2), (6, 2), (7, 1), (18, 1), (58, 1), (80, 2), (121, 1), (173, 2)], [(3, 2), (11, 1), (58, 1), (64, 2), (71, 1), (73, 1), (74, 2), (80, 2), (117, 2), (120, 1)], [(6, 2), (8, 1), (9, 2), (11, 1), (71, 1), (80, 2), (115, 1), (117, 2)], [], [], [], [], [], [], [(0, 2), (1, 1), (6, 2), (7, 2), (11, 2), (12, 1), (15, 2), (16, 1), (18, 1), (44, 1), (57, 2), (58, 1), (114, 2), (115, 2), (173, 2)], [(1, 1), (3, 2), (6, 2), (7, 2), (11, 1), (18, 1), (57, 2), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (72, 1), (99, 1), (114, 2), (117, 1), (120, 1), (121, 2), (173, 2)], [], [], [], [], [], [(1, 2), (3, 2), (6, 2), (7, 1), (15, 2), (16, 1), (18, 2), (60, 1), (63, 1), (64, 2), (66, 1), (67, 2), (72, 2), (117, 1), (120, 1), (121, 1), (127, 1), (173, 1)], [], [], [], [], [], [], [], [], [], [], [], [(1, 1), (3, 1), (6, 1), (7, 2), (8, 1), (9, 2), (18, 1), (57, 1), (58, 2), (60, 2), (63, 2), (64, 1), (66, 2), (67, 1), (71, 2), (72, 1), (74, 1), (114, 2), (115, 1), (117, 2), (120, 2), (121, 2), (173, 2)], [(1, 2), (3, 1), (6, 1), (7, 1), (8, 2), (9, 1), (11, 1), (57, 1), (58, 1), (60, 2), (63, 2), (64, 1), (65, 2), (66, 1), (67, 2), (68, 1), (72, 2), (114, 2), (115, 2), (117, 1), (120, 2), (121, 1)], [(1, 2), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (57, 1), (58, 2), (60, 1), (63, 2), (64, 1), (66, 2), (67, 2), (72, 1), (114, 2), (115, 1), (117, 2), (120, 2), (121, 1)], [(1, 2), (3, 2), (6, 1), (7, 1), (8, 2), (9, 1), (57, 1), (58, 1), (60, 1), (63, 2), (64, 2), (66, 1), (67, 2), (72, 2), (114, 2), (115, 2), (117, 2), (120, 1), (121, 1)], [], [], [], [], [], [], [], [], []] + +def comb91 : List (List (Nat × Nat)) := [[(1, 1), (4, 1), (6, 2), (7, 2), (9, 1), (13, 1), (15, 2), (16, 1), (19, 2), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (7, 1), (9, 1), (13, 2), (15, 2), (16, 1), (18, 1), (19, 1), (57, 2), (58, 1), (60, 2), (63, 2), (64, 2), (66, 2), (67, 1), (71, 1), (72, 1), (99, 1), (121, 2), (137, 2), (173, 1)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (9, 2), (13, 2), (15, 1), (16, 2), (18, 2), (19, 2), (57, 2), (58, 2), (63, 1), (66, 1), (67, 2), (72, 2), (114, 1), (121, 1), (137, 1), (173, 2)], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (6, 1), (7, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 1), (19, 1), (58, 1), (60, 2), (63, 2), (64, 2), (66, 2), (67, 1), (71, 1), (72, 1), (99, 1), (114, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [], [(0, 1), (2, 2), (3, 1), (13, 1), (15, 1), (16, 2), (18, 2), (19, 2), (57, 2), (58, 2), (60, 2), (63, 1), (64, 2), (66, 1), (67, 2), (71, 1), (72, 2), (77, 1), (114, 1), (121, 1), (137, 1), (173, 2)], [(0, 1), (2, 2), (3, 1), (4, 1), (9, 2), (13, 1), (15, 1), (16, 2), (18, 2), (19, 2), (57, 2), (58, 2), (60, 2), (63, 1), (66, 1), (67, 2), (71, 1), (72, 2), (114, 1), (121, 1), (137, 1), (173, 2)], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (7, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 2), (19, 1), (58, 1), (60, 2), (63, 2), (64, 2), (66, 2), (67, 1), (71, 1), (72, 1), (99, 1), (114, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (4, 2), (7, 1), (9, 1), (13, 2), (15, 2), (16, 1), (18, 1), (19, 1), (58, 1), (60, 2), (63, 2), (64, 2), (66, 2), (67, 1), (71, 1), (72, 1), (99, 1), (114, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [(0, 1), (2, 2), (3, 1), (6, 2), (9, 2), (13, 1), (57, 2), (58, 2), (64, 2), (99, 2), (114, 2), (137, 1)], [], [(1, 1), (6, 1), (7, 2), (13, 2), (57, 2), (58, 1), (60, 2), (71, 1), (114, 1), (137, 2)], [], [], [], [(1, 1), (7, 2), (13, 1), (18, 2), (57, 2), (58, 2), (60, 2), (64, 1), (71, 1), (99, 2), (114, 2), (137, 1), (173, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (57, 2), (58, 2), (64, 1), (71, 1), (99, 2), (114, 2), (137, 1)], [(1, 1), (7, 2), (57, 2), (60, 2), (64, 1), (71, 1), (99, 2), (114, 2), (137, 1)], [(1, 1), (13, 2), (18, 1), (19, 2), (57, 2), (58, 1), (60, 2), (71, 1), (114, 1), (137, 2)], [], [], [(4, 1), (13, 2), (15, 1), (16, 2), (18, 1), (19, 2), (57, 2), (58, 1), (60, 2), (71, 1), (114, 1), (137, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (7, 2), (9, 1), (57, 2), (58, 1), (60, 2), (71, 1), (114, 1), (137, 2)], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (7, 1), (9, 1), (13, 2), (15, 2), (16, 1), (18, 1), (19, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (7, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 2), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [(0, 2), (1, 2), (2, 1), (3, 2), (7, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 2), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (13, 2), (58, 1), (60, 1), (71, 1), (117, 1), (137, 2)], [(1, 1), (6, 1), (7, 2), (13, 2), (60, 2), (71, 1), (115, 1), (137, 2)], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (9, 1), (13, 2), (58, 1), (60, 2), (64, 2), (71, 1), (120, 1), (137, 2)], [], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 2), (6, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 1), (19, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (2, 2), (3, 1), (6, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 1), (19, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 1), (19, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (9, 1), (13, 1), (15, 2), (16, 2), (18, 1), (19, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (2, 1), (3, 2), (4, 2), (6, 1), (9, 1), (13, 1), (15, 2), (16, 1), (17, 1), (18, 1), (19, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [(0, 2), (2, 1), (3, 2), (4, 2), (6, 1), (9, 1), (15, 2), (16, 1), (18, 2), (22, 1), (57, 2), (58, 2), (60, 1), (63, 2), (64, 2), (66, 2), (67, 1), (71, 2), (72, 1), (99, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (7, 1), (9, 2), (13, 1), (15, 1), (16, 2), (18, 2), (19, 2), (58, 1), (66, 1), (67, 2), (121, 1), (137, 2), (173, 2)], [(0, 1), (2, 2), (3, 1), (9, 2), (13, 2), (18, 1), (58, 1), (65, 1), (66, 1), (67, 2), (72, 2), (121, 1), (137, 2), (173, 2)], [(13, 2), (18, 1), (58, 1), (121, 1), (137, 2), (173, 2)], [], [], [], [(4, 1), (9, 2), (60, 2), (64, 1), (115, 1), (120, 2), (127, 1), (130, 1), (131, 2), (137, 2)], [(0, 2), (2, 1), (3, 2), (4, 1), (58, 1), (60, 2), (127, 1), (137, 2)], [], [], [], [(1, 1), (4, 2), (7, 2), (9, 2), (15, 1), (16, 2), (19, 1), (44, 1), (57, 2), (63, 1), (64, 1), (66, 1), (67, 2), (72, 2), (99, 2), (114, 2), (121, 1), (173, 2)], [], [(1, 2), (4, 1), (7, 1), (13, 1), (15, 1), (16, 2), (18, 2), (19, 2), (63, 1), (64, 1), (66, 1), (67, 2), (72, 2), (99, 1), (114, 1), (121, 1), (157, 1), (173, 2)], [], [], [], [], [(0, 1), (2, 2), (3, 1), (6, 1), (9, 1), (13, 1), (15, 2), (16, 1), (18, 2), (57, 1), (63, 2), (64, 2), (66, 2), (67, 1), (72, 1), (99, 1), (114, 1), (121, 2), (173, 1)], [], [], [], [], [], [(1, 2), (6, 1), (7, 1), (13, 2), (57, 2), (60, 1), (64, 1), (71, 2), (99, 2)], [], [], [], [], [(0, 2), (2, 1), (3, 2), (6, 2), (9, 2), (13, 2), (15, 1), (16, 2), (18, 2), (19, 2), (57, 1), (58, 1), (63, 1), (64, 1), (66, 1), (67, 2), (71, 1), (72, 2), (99, 2), (115, 2), (121, 1), (127, 2), (131, 1), (173, 2)], [], [(0, 1), (2, 2), (3, 1), (4, 1), (6, 2), (9, 2), (15, 1), (16, 2), (18, 1), (19, 2), (57, 1), (60, 2), (63, 1), (64, 1), (65, 2), (68, 1), (71, 1), (99, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (6, 2), (7, 2), (9, 2), (13, 1), (57, 1), (60, 2), (63, 1), (64, 1), (66, 1), (71, 1), (72, 2), (99, 2)], [(1, 1), (6, 2), (7, 2), (13, 1), (57, 1), (60, 2), (63, 1), (64, 1), (71, 1), (99, 2)], [], [], [], [], [], [], [], [], []] + +def comb92 : List (List (Nat × Nat)) := [[(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (11, 1), (13, 1), (15, 1), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [], [], [], [], [(0, 1), (4, 2), (5, 2), (7, 2), (11, 1), (15, 2), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1), (293, 1)], [], [], [(1, 2), (2, 2), (3, 1), (5, 1), (6, 2), (8, 1), (11, 2), (15, 2), (34, 2), (60, 1), (63, 1), (65, 2), (127, 2), (293, 2)], [], [], [(0, 1), (1, 2), (2, 2), (3, 1), (4, 1), (5, 2), (6, 1), (7, 1), (8, 1), (11, 1), (12, 1), (13, 1), (58, 2), (71, 1), (74, 2), (75, 1), (80, 1), (127, 1), (293, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 1), (4, 1), (5, 2), (6, 2), (7, 1), (11, 1), (13, 1), (15, 1), (58, 1), (60, 1), (63, 1), (65, 2), (80, 2), (127, 1), (293, 1)], [], [(1, 2), (2, 2), (5, 1), (7, 2), (8, 1), (13, 2), (15, 2), (20, 1), (34, 2), (60, 1), (63, 1), (65, 2), (127, 2), (293, 2)], [], [], [], [(1, 2), (2, 2), (3, 1), (5, 1), (6, 2), (8, 2), (11, 2), (13, 2), (15, 2), (34, 2), (60, 1), (63, 1), (65, 2), (127, 2), (293, 2)], [(1, 2), (2, 2), (3, 1), (5, 1), (8, 1), (11, 2), (13, 2), (15, 2), (34, 2), (60, 1), (63, 1), (65, 2), (127, 2), (293, 2)], [], [(0, 2), (1, 2), (5, 1), (8, 1), (13, 2), (34, 1), (60, 1), (63, 1), (64, 1), (65, 2), (127, 1), (293, 2)], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (13, 1), (58, 2), (80, 1), (127, 2), (293, 1)], [], [], [(1, 2), (2, 2), (3, 1), (5, 1), (6, 2), (8, 1), (11, 2), (15, 2), (34, 2), (60, 1), (63, 1), (65, 2), (121, 1), (127, 1), (293, 2)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (15, 2), (34, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1), (293, 2)], [], [], [], [(0, 1), (5, 2), (7, 2), (15, 1), (58, 2), (80, 1), (127, 2), (293, 1)], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 2), (8, 1), (12, 1), (58, 2), (80, 1), (127, 2), (293, 1)], [(0, 1), (1, 1), (4, 2), (5, 2), (7, 2), (14, 1), (58, 2), (80, 1), (127, 2), (293, 1)], [], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 2), (8, 2), (11, 2), (13, 2), (34, 1), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (13, 2), (34, 1), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (1, 2), (7, 2), (8, 1), (13, 2), (34, 1), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 2), (7, 2), (8, 2), (13, 2), (34, 1), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 1), (6, 2), (7, 2), (11, 1), (13, 1), (58, 2), (60, 1), (80, 1), (127, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (13, 1), (58, 2), (80, 1), (117, 1), (127, 2)], [], [], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (6, 1), (8, 1), (13, 1), (20, 2), (58, 2), (80, 1), (127, 2), (174, 1)], [(0, 1), (1, 1), (3, 1), (4, 2), (5, 2), (6, 2), (13, 1), (20, 2), (58, 2), (80, 1), (127, 2), (236, 1)], [], [(0, 2), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (11, 2), (15, 2), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [], [(0, 1), (2, 2), (3, 1), (6, 2), (7, 2), (8, 1), (11, 2), (15, 2), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (11, 2), (15, 2), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (15, 2), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (10, 1), (15, 2), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 1), (8, 1), (15, 2), (22, 1), (34, 2), (58, 2), (60, 1), (63, 1), (65, 2), (80, 1), (127, 1)], [(0, 1), (2, 2), (4, 2), (7, 2), (11, 1), (15, 1), (58, 2), (60, 1), (66, 1), (67, 2), (80, 1), (127, 2)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (11, 1), (12, 1), (14, 2), (71, 1), (73, 1), (74, 2), (127, 2)], [(1, 1), (4, 2), (7, 2), (11, 1), (71, 1), (127, 2)], [], [(2, 2), (3, 1), (6, 2), (8, 1), (12, 1), (14, 2), (130, 1), (131, 2)], [], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (5, 1), (6, 1), (7, 2), (11, 2), (13, 2), (14, 2), (15, 2), (44, 1), (58, 2), (60, 2), (63, 2), (65, 1), (80, 1), (293, 2)], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 1), (5, 2), (6, 2), (7, 2), (8, 2), (11, 1), (13, 1), (15, 1), (34, 2), (58, 2), (64, 2), (80, 1), (293, 1), (392, 1)], [], [], [], [(0, 2), (2, 2), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 2), (34, 1), (58, 1), (60, 1), (63, 1), (65, 2), (80, 2), (293, 1)], [], [], [], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (13, 1), (15, 2), (34, 2), (57, 1), (58, 1), (60, 1), (63, 1), (65, 2), (80, 2)], [], [], [], [], [(0, 2), (2, 2), (3, 1), (4, 1), (6, 2), (7, 1), (8, 1), (11, 1), (12, 2), (15, 1), (34, 1), (58, 1), (60, 2), (63, 2), (65, 1), (80, 2), (127, 2), (131, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (12, 2), (15, 1), (34, 1), (58, 1), (60, 2), (63, 2), (65, 1), (71, 2), (74, 1), (80, 2)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (34, 1), (58, 2), (60, 1), (63, 2), (65, 1), (67, 1), (80, 1)], [(0, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (34, 1), (58, 2), (60, 1), (63, 2), (65, 2), (80, 1)], [], [], [], [], [], [], [], [], []] + +def comb93 : List (List (Nat × Nat)) := [[(0, 1), (1, 2), (2, 1), (6, 1), (8, 1), (12, 2), (18, 1), (19, 1), (58, 2), (60, 1), (71, 2), (72, 1), (137, 1)], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 2), (18, 2), (19, 2), (58, 2), (63, 2), (121, 2), (137, 2), (173, 1)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (6, 1), (8, 2), (9, 1), (12, 2), (19, 2), (57, 2), (60, 2), (71, 1), (72, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [], [], [], [(0, 1), (1, 2), (6, 2), (7, 1), (8, 1), (19, 2), (57, 1), (58, 2), (63, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 1), (1, 1), (2, 1), (4, 1), (6, 1), (8, 2), (9, 2), (12, 2), (19, 1), (57, 2), (60, 1), (63, 2), (71, 2), (72, 2), (74, 2), (75, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (6, 1), (7, 1), (8, 1), (9, 2), (12, 1), (18, 1), (57, 2), (60, 1), (64, 2), (71, 2), (72, 1), (77, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [(0, 2), (1, 1), (6, 1), (7, 2), (8, 1), (18, 1), (19, 1), (57, 2), (58, 1), (63, 2), (121, 1), (137, 1), (172, 1), (173, 2)], [], [], [(0, 1), (1, 2), (7, 1), (8, 1), (18, 2), (19, 2), (57, 1), (58, 2), (63, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 2), (18, 2), (19, 2), (57, 1), (58, 2), (63, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [(0, 1), (1, 2), (6, 2), (7, 1), (8, 2), (18, 2), (19, 2), (57, 1), (58, 2), (63, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 1), (1, 2), (3, 1), (4, 1), (6, 2), (7, 2), (8, 2), (9, 1), (12, 2), (18, 2), (19, 2), (57, 1), (58, 1), (60, 1), (71, 2), (72, 1), (121, 2), (137, 2), (172, 2), (173, 1)], [(8, 1), (18, 2), (57, 1), (58, 2), (63, 2), (64, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [], [], [], [(3, 2), (7, 2), (8, 2), (9, 1), (12, 1), (18, 1), (57, 2), (58, 2), (60, 2), (63, 2), (71, 1), (72, 2), (121, 1), (137, 2), (172, 1), (173, 2)], [], [(0, 1), (1, 2), (6, 2), (7, 1), (8, 1), (19, 2), (57, 1), (58, 2), (63, 2), (137, 1), (172, 2), (173, 1)], [(2, 1), (3, 2), (9, 1), (19, 2), (57, 1), (58, 2), (63, 2), (71, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [], [], [(3, 2), (6, 1), (7, 1), (8, 2), (9, 1), (12, 1), (19, 1), (57, 2), (58, 2), (60, 2), (63, 2), (71, 1), (72, 2), (121, 1), (137, 2), (172, 1), (173, 2)], [], [], [], [(2, 2), (3, 2), (7, 1), (9, 1), (12, 2), (19, 1), (57, 2), (58, 2), (60, 2), (63, 2), (71, 1), (72, 2), (121, 1), (137, 2), (172, 1), (173, 2)], [], [(9, 2), (21, 1), (57, 2), (58, 1), (121, 1), (137, 2), (172, 1), (173, 2)], [(0, 1), (1, 2), (2, 2), (3, 1), (6, 2), (7, 1), (8, 2), (9, 2), (18, 2), (63, 2), (137, 1)], [(8, 1), (18, 2), (63, 2), (137, 1)], [], [(0, 1), (1, 2), (2, 2), (7, 2), (8, 1), (9, 1), (12, 1), (18, 2), (58, 1), (60, 2), (63, 1), (71, 1), (72, 2), (137, 1)], [], [(0, 1), (1, 1), (2, 2), (6, 1), (7, 1), (8, 1), (12, 1), (18, 1), (58, 2), (60, 1), (63, 2), (71, 2), (72, 2), (137, 2)], [], [], [(0, 2), (1, 1), (2, 1), (3, 1), (7, 1), (8, 2), (9, 2), (12, 1), (18, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 2), (115, 1), (137, 2)], [], [(0, 2), (2, 1), (3, 1), (7, 2), (8, 2), (9, 2), (12, 1), (18, 1), (58, 2), (60, 1), (63, 2), (71, 1), (72, 2), (121, 1), (137, 2), (173, 2), (174, 1)], [], [(0, 2), (2, 1), (3, 2), (8, 2), (9, 1), (18, 1), (58, 1), (64, 2), (121, 1), (137, 2), (173, 2), (181, 1)], [(0, 1), (1, 2), (6, 2), (7, 1), (8, 1), (19, 2), (63, 2), (137, 1)], [(0, 1), (1, 2), (3, 1), (6, 2), (7, 1), (8, 1), (9, 2), (19, 2), (63, 2), (137, 1)], [], [(0, 1), (1, 2), (2, 2), (4, 2), (5, 1), (6, 2), (8, 1), (9, 1), (12, 1), (19, 2), (58, 1), (60, 2), (63, 1), (71, 1), (72, 2), (137, 1)], [], [(0, 1), (1, 2), (3, 2), (7, 2), (9, 1), (10, 1), (12, 1), (19, 2), (58, 1), (60, 2), (63, 1), (71, 1), (72, 2), (137, 1)], [], [(0, 1), (1, 2), (4, 2), (9, 1), (17, 1), (19, 2), (58, 1), (60, 2), (63, 1), (71, 1), (72, 2), (137, 1)], [], [], [(0, 2), (1, 1), (3, 1), (6, 1), (8, 2), (9, 2), (12, 2), (19, 1), (58, 2), (60, 1), (63, 2), (65, 1), (71, 2), (72, 1), (137, 2)], [], [(0, 1), (1, 1), (2, 1), (6, 1), (8, 2), (12, 2), (19, 1), (58, 2), (60, 1), (63, 2), (71, 2), (72, 2), (73, 1), (74, 2), (137, 2)], [], [(0, 2), (1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 1), (80, 1), (137, 2)], [(0, 2), (1, 1), (3, 1), (9, 2), (12, 2), (19, 1), (58, 1), (60, 1), (63, 2), (71, 2), (72, 2), (115, 1), (130, 1), (131, 2), (137, 2)], [], [], [], [], [(0, 2), (1, 1), (2, 2), (3, 1), (6, 1), (7, 2), (9, 2), (18, 2), (19, 1), (44, 1), (57, 1), (58, 2), (63, 1), (121, 2), (172, 2), (173, 1)], [], [], [], [(0, 2), (1, 1), (2, 2), (3, 2), (6, 1), (8, 1), (9, 1), (12, 2), (18, 1), (19, 2), (57, 1), (58, 1), (60, 2), (63, 1), (64, 2), (71, 1), (72, 1), (121, 2), (172, 1), (173, 1), (216, 1)], [], [], [(0, 1), (1, 2), (2, 2), (7, 2), (8, 1), (12, 1), (57, 2), (58, 2), (60, 2), (63, 1), (71, 1), (72, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [], [], [(0, 2), (2, 2), (7, 2), (8, 2), (12, 1), (18, 1), (19, 2), (57, 1), (58, 1), (60, 1), (63, 1), (71, 2), (72, 2)], [], [], [], [], [(3, 2), (4, 2), (6, 1), (7, 2), (8, 2), (9, 2), (12, 1), (58, 2), (60, 2), (63, 2), (71, 1), (72, 1), (115, 2), (131, 1)], [(0, 1), (2, 2), (4, 2), (7, 2), (9, 1), (12, 1), (58, 1), (60, 2), (63, 2), (71, 1), (72, 1), (74, 1)], [(3, 2), (4, 2), (7, 2), (9, 2), (12, 1), (58, 1), (60, 2), (63, 2), (65, 2), (68, 1), (71, 1), (72, 2)], [], [], [], [], [], [], [], [], [], [], []] + +def comb94 : List (List (Nat × Nat)) := [[(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (8, 1), (10, 1), (14, 1), (24, 1), (25, 2), (58, 2), (60, 1), (66, 1), (71, 2), (73, 2), (74, 1), (137, 1)], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (9, 1), (24, 2), (25, 1), (57, 1), (58, 1), (64, 1), (66, 1), (67, 1), (99, 2), (121, 2), (137, 2), (234, 1)], [(0, 2), (1, 1), (2, 1), (6, 2), (8, 1), (9, 1), (10, 2), (14, 2), (58, 2), (60, 2), (64, 1), (66, 2), (67, 2), (71, 1), (73, 1), (74, 2), (99, 2), (121, 1), (137, 1), (233, 1), (234, 2)], [], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 2), (9, 1), (25, 1), (57, 2), (58, 1), (64, 1), (66, 1), (67, 1), (99, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [(0, 1), (1, 2), (2, 1), (5, 1), (6, 1), (8, 1), (9, 2), (10, 1), (14, 2), (24, 1), (25, 2), (58, 2), (60, 1), (64, 1), (66, 2), (67, 2), (71, 2), (73, 1), (74, 1), (75, 1), (99, 2), (121, 1), (137, 1), (233, 1), (234, 2)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (8, 1), (10, 1), (14, 1), (24, 1), (25, 2), (58, 2), (60, 1), (66, 2), (67, 2), (71, 2), (73, 2), (74, 1), (77, 1), (99, 2), (121, 1), (137, 1), (233, 1), (234, 2)], [], [], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 1), (9, 1), (24, 2), (25, 1), (57, 2), (58, 1), (64, 1), (66, 1), (67, 1), (99, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [], [], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (9, 1), (24, 2), (25, 1), (57, 2), (58, 1), (64, 1), (66, 1), (67, 1), (99, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [(1, 1), (3, 2), (4, 1), (6, 2), (8, 2), (9, 2), (10, 1), (14, 1), (24, 2), (25, 1), (57, 1), (58, 1), (60, 1), (67, 1), (71, 2), (73, 2), (74, 1), (121, 2), (137, 2), (233, 2), (234, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (24, 2), (25, 1), (57, 1), (58, 2), (64, 1), (66, 1), (67, 1), (121, 2), (137, 1), (233, 2), (234, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 1), (6, 2), (9, 2), (10, 2), (14, 2), (24, 1), (25, 2), (58, 1), (60, 2), (64, 1), (66, 2), (67, 2), (71, 1), (73, 1), (74, 2), (99, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 1), (57, 1), (58, 2), (66, 2), (137, 1), (233, 2), (234, 1)], [(0, 2), (2, 1), (9, 2), (10, 2), (14, 2), (57, 1), (58, 2), (66, 1), (67, 1), (71, 1), (73, 1), (74, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [(0, 1), (2, 1), (3, 1), (4, 2), (5, 1), (9, 1), (10, 1), (14, 1), (57, 2), (60, 1), (64, 1), (66, 2), (67, 1), (71, 2), (73, 2), (74, 1), (99, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [], [], [(2, 1), (4, 1), (5, 2), (6, 2), (8, 1), (9, 1), (10, 2), (14, 2), (58, 1), (60, 2), (64, 1), (66, 2), (67, 2), (71, 1), (73, 1), (74, 2), (99, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [], [(0, 2), (2, 2), (3, 2), (4, 1), (5, 2), (9, 2), (10, 2), (14, 2), (58, 1), (60, 2), (64, 1), (66, 2), (67, 2), (71, 1), (73, 1), (74, 2), (99, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 1), (10, 2), (58, 1), (60, 2), (64, 1), (66, 2), (67, 2), (71, 1), (73, 1), (74, 2), (99, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (9, 2), (21, 1), (57, 2), (58, 1), (66, 1), (67, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 2), (10, 1), (24, 2), (25, 1), (57, 1), (58, 2), (64, 1), (66, 2), (99, 2), (137, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (24, 2), (25, 1), (57, 1), (58, 2), (64, 1), (66, 2), (99, 2), (137, 1)], [(1, 1), (2, 1), (6, 1), (9, 2), (10, 2), (14, 2), (24, 2), (25, 1), (57, 2), (58, 2), (60, 2), (64, 2), (71, 1), (73, 1), (74, 2), (99, 1), (137, 1)], [], [], [], [(0, 1), (1, 2), (2, 2), (6, 1), (8, 1), (10, 1), (14, 1), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (64, 1), (66, 1), (71, 2), (73, 2), (74, 1), (99, 2), (137, 2)], [], [], [(1, 2), (3, 2), (6, 2), (9, 1), (10, 1), (14, 1), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (66, 1), (71, 2), (73, 2), (74, 1), (99, 2), (120, 1), (137, 2)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (9, 2), (10, 2), (14, 2), (24, 1), (25, 2), (57, 1), (58, 1), (60, 1), (64, 1), (66, 2), (67, 2), (71, 1), (73, 1), (74, 2), (99, 2), (121, 1), (137, 2), (234, 2), (236, 1)], [(0, 1), (1, 2), (3, 1), (4, 1), (5, 2), (6, 2), (9, 2), (10, 2), (14, 2), (24, 1), (25, 2), (58, 1), (60, 2), (64, 2), (71, 1), (73, 1), (74, 2), (137, 2), (181, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 1), (57, 1), (58, 2), (64, 1), (66, 2), (99, 2), (137, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 1), (57, 1), (58, 2), (64, 1), (66, 2), (99, 2), (137, 1)], [(0, 2), (1, 2), (2, 1), (6, 1), (8, 2), (10, 2), (14, 2), (57, 2), (58, 2), (60, 2), (64, 2), (71, 1), (73, 1), (74, 2), (99, 1), (137, 1)], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 1), (7, 1), (10, 1), (14, 2), (57, 2), (58, 2), (60, 2), (64, 2), (71, 1), (73, 1), (74, 2), (99, 1), (137, 1)], [], [(0, 2), (1, 1), (2, 1), (6, 1), (8, 2), (10, 2), (14, 2), (15, 1), (57, 2), (58, 2), (60, 2), (64, 2), (71, 1), (73, 1), (74, 2), (99, 1), (137, 1)], [], [], [], [], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 2), (6, 2), (8, 1), (10, 1), (14, 1), (57, 1), (58, 1), (60, 1), (64, 1), (67, 1), (71, 2), (73, 2), (74, 1), (99, 2), (137, 2)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (6, 2), (8, 1), (9, 2), (10, 1), (14, 2), (57, 1), (58, 1), (60, 1), (64, 1), (66, 1), (71, 2), (73, 1), (74, 2), (99, 2), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2), (8, 1), (10, 2), (80, 1), (137, 2)], [], [(0, 2), (3, 1), (4, 2), (5, 1), (9, 2), (10, 2), (14, 2), (57, 1), (58, 1), (60, 1), (64, 1), (66, 1), (71, 1), (73, 1), (74, 2), (99, 2), (127, 1), (137, 2)], [], [], [], [(0, 2), (2, 1), (6, 2), (8, 2), (9, 2), (14, 2), (24, 2), (25, 1), (44, 1), (64, 2), (67, 1), (99, 1), (121, 2), (233, 2), (234, 1)], [], [], [], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 1), (6, 1), (8, 1), (9, 1), (10, 2), (14, 2), (24, 1), (25, 2), (57, 2), (60, 2), (66, 1), (67, 1), (71, 1), (73, 1), (74, 2), (99, 2), (121, 2), (233, 1), (234, 1), (274, 1)], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 1), (6, 1), (9, 2), (10, 2), (14, 2), (57, 1), (60, 2), (64, 2), (66, 1), (67, 2), (71, 1), (73, 1), (74, 2), (99, 1), (121, 1), (233, 1), (234, 2)], [], [], [], [], [], [(0, 1), (1, 1), (3, 2), (4, 1), (5, 2), (6, 2), (9, 1), (10, 1), (14, 1), (24, 1), (25, 2), (57, 2), (60, 1), (64, 1), (71, 2), (73, 2), (74, 1), (99, 2)], [], [], [], [], [(2, 2), (4, 1), (5, 1), (6, 2), (8, 1), (9, 2), (10, 2), (14, 1), (57, 1), (60, 2), (64, 2), (71, 1), (73, 1), (74, 2), (99, 2), (120, 2), (130, 1)], [(0, 2), (3, 2), (4, 1), (5, 1), (10, 2), (14, 1), (57, 1), (60, 2), (64, 1), (71, 1), (73, 2), (74, 2), (99, 2)], [(2, 2), (3, 2), (4, 1), (5, 1), (9, 2), (10, 2), (14, 2), (57, 1), (60, 2), (64, 1), (68, 1), (71, 1), (73, 1), (74, 2), (99, 2)], [], [], [], [], [], [], [], [], [], [], []] + +def comb95 : List (List (Nat × Nat)) := [[], [(2, 1), (7, 2), (8, 1), (9, 1), (11, 2), (12, 1), (13, 2), (14, 1), (19, 1), (22, 1), (58, 1), (71, 2), (74, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 1), (8, 2), (9, 2), (11, 1), (12, 2), (14, 2), (15, 1), (19, 1), (34, 2), (71, 1), (74, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [(0, 1), (2, 2), (6, 2), (8, 1), (9, 1), (11, 2), (13, 1), (14, 2), (15, 1), (22, 1), (34, 2), (71, 2), (74, 1), (114, 1), (121, 1), (137, 1), (173, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 2), (9, 2), (11, 1), (12, 2), (14, 2), (15, 1), (19, 1), (34, 2), (71, 1), (74, 2), (114, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 2), (13, 1), (14, 2), (15, 1), (19, 1), (34, 2), (57, 2), (71, 1), (74, 2), (75, 1), (114, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (13, 1), (14, 1), (20, 1), (22, 1), (71, 2), (74, 1), (114, 1), (121, 1), (137, 1), (173, 2)], [(0, 1), (1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (13, 1), (22, 2), (71, 2), (74, 1), (114, 1), (121, 1), (137, 1), (173, 2)], [(0, 1), (1, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (13, 1), (14, 1), (22, 2), (71, 2), (74, 1), (114, 1), (121, 1), (137, 1), (173, 2)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 2), (13, 1), (14, 2), (15, 1), (19, 1), (34, 2), (71, 1), (74, 2), (114, 2), (121, 2), (137, 2), (173, 1)], [], [], [], [], [(0, 1), (2, 2), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (14, 1), (15, 2), (19, 2), (34, 1), (114, 2), (137, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 2), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (22, 1), (114, 1), (137, 2)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 1), (11, 2), (14, 2), (15, 1), (19, 1), (22, 1), (34, 2), (71, 1), (74, 2), (114, 2), (137, 1), (173, 1)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 1), (11, 2), (14, 2), (15, 1), (19, 2), (22, 1), (34, 2), (114, 2), (137, 1)], [(0, 1), (1, 1), (3, 2), (4, 2), (6, 1), (8, 2), (9, 1), (11, 2), (14, 2), (15, 1), (19, 2), (22, 1), (34, 2), (114, 2), (137, 1)], [(0, 1), (2, 2), (6, 2), (8, 1), (9, 2), (11, 1), (13, 1), (14, 1), (15, 1), (19, 2), (22, 1), (114, 1), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (6, 2), (7, 2), (8, 1), (11, 1), (12, 1), (13, 2), (14, 2), (22, 1), (114, 1), (137, 2)], [], [], [], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (13, 2), (15, 2), (19, 1), (22, 1), (34, 1), (71, 1), (74, 2), (121, 2), (137, 1), (173, 1)], [(1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 2), (19, 1), (22, 1), (71, 2), (74, 1), (121, 1), (137, 2), (173, 2)], [], [], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (13, 2), (15, 2), (19, 1), (22, 1), (34, 1), (58, 2), (60, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (1, 1), (2, 2), (3, 1), (4, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (13, 2), (15, 2), (19, 1), (22, 1), (34, 1), (121, 2), (137, 1), (173, 1)], [(0, 2), (1, 1), (2, 1), (3, 1), (4, 2), (7, 1), (8, 2), (11, 2), (12, 2), (13, 2), (14, 1), (15, 2), (19, 1), (22, 1), (34, 1), (58, 2), (64, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 1), (19, 2), (22, 2), (117, 1), (137, 2)], [(1, 1), (2, 2), (3, 1), (4, 2), (7, 2), (8, 1), (9, 2), (11, 1), (13, 2), (22, 1), (115, 1), (137, 2)], [(1, 1), (2, 2), (4, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 2), (22, 1), (120, 1), (137, 2)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (9, 1), (11, 2), (13, 2), (14, 2), (15, 1), (19, 1), (22, 1), (34, 2), (71, 1), (74, 2), (121, 2), (137, 1), (173, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (9, 1), (11, 2), (13, 2), (14, 2), (15, 1), (19, 1), (22, 1), (34, 2), (71, 1), (74, 2), (121, 2), (137, 1), (173, 1)], [(0, 1), (1, 2), (3, 2), (4, 1), (5, 1), (9, 1), (11, 2), (13, 2), (14, 2), (15, 1), (19, 1), (22, 1), (34, 2), (71, 1), (74, 2), (121, 2), (137, 1), (173, 1)], [(2, 2), (9, 2), (11, 1), (14, 1), (19, 1), (71, 2), (74, 1), (121, 1), (137, 2), (173, 2)], [(2, 2), (7, 2), (9, 2), (10, 1), (11, 1), (12, 1), (19, 1), (71, 2), (74, 1), (121, 1), (137, 2), (173, 2)], [], [], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (9, 2), (11, 2), (13, 2), (14, 1), (15, 1), (19, 1), (22, 1), (34, 2), (64, 2), (71, 1), (73, 1), (74, 2), (121, 2), (137, 1), (173, 1)], [(0, 2), (1, 2), (3, 2), (4, 1), (9, 1), (11, 2), (13, 2), (14, 2), (15, 1), (19, 1), (22, 1), (34, 2), (58, 2), (71, 1), (121, 2), (137, 1), (173, 1)], [(0, 2), (1, 2), (3, 2), (4, 1), (9, 1), (11, 2), (13, 2), (14, 2), (15, 1), (19, 1), (22, 1), (34, 2), (58, 2), (80, 1), (121, 2), (137, 1), (173, 1)], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 1), (9, 2), (11, 1), (13, 2), (19, 2), (22, 1), (115, 1), (120, 2), (127, 1), (130, 1), (131, 2), (137, 2)], [(0, 1), (2, 2), (6, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 2), (19, 2), (22, 1), (127, 1), (137, 2)], [], [], [], [], [(1, 2), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (9, 2), (12, 1), (13, 2), (19, 2), (22, 1), (58, 2), (71, 1), (74, 2), (99, 1), (114, 2), (121, 1), (173, 2)], [(2, 2), (6, 1), (7, 2), (12, 2), (13, 1), (14, 1), (15, 2), (19, 1), (22, 1), (34, 1), (71, 2), (74, 1), (114, 1), (121, 1), (157, 1), (173, 2)], [], [], [], [], [], [(0, 2), (1, 2), (3, 2), (4, 1), (6, 2), (8, 1), (15, 2), (19, 1), (22, 2), (34, 1), (57, 1), (58, 2), (114, 1), (121, 2), (173, 1)], [], [], [], [], [], [], [], [], [], [(0, 1), (1, 1), (3, 1), (4, 2), (6, 1), (8, 2), (13, 2), (14, 1), (15, 2), (22, 1), (34, 1), (71, 2), (74, 1), (115, 2), (121, 1), (127, 2), (131, 1), (173, 2)], [], [], [], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (9, 2), (11, 1), (13, 1), (14, 1), (15, 2), (19, 1), (22, 2), (34, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (12, 2), (13, 2), (14, 1), (15, 2), (19, 2), (22, 1), (34, 1)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (13, 2), (15, 2), (19, 2), (22, 1), (34, 1)], [], [], [], [], []] + +def comb96 : List (List (Nat × Nat)) := [[], [(0, 1), (1, 2), (3, 1), (4, 2), (6, 1), (7, 2), (10, 2), (13, 1), (15, 2), (16, 2), (18, 1), (20, 2), (34, 2), (44, 1), (60, 2), (64, 2), (65, 2), (68, 1), (127, 1)], [], [], [], [], [(1, 1), (2, 1), (5, 2), (6, 1), (7, 2), (9, 2), (14, 1), (16, 1), (18, 2), (19, 2), (20, 2), (34, 1), (44, 1), (58, 2), (60, 2), (64, 2), (65, 2), (68, 1), (127, 1), (293, 1)], [], [(1, 2), (5, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 2), (14, 2), (15, 2), (16, 1), (18, 2), (19, 2), (58, 1), (60, 1), (64, 1), (65, 1), (68, 2), (127, 2), (293, 2)], [], [], [], [(1, 1), (2, 1), (5, 1), (6, 1), (8, 1), (9, 2), (10, 2), (12, 2), (13, 2), (14, 2), (16, 1), (18, 2), (19, 2), (20, 2), (58, 1), (60, 1), (77, 1), (127, 2), (293, 2)], [], [(0, 2), (1, 2), (3, 1), (4, 2), (5, 2), (6, 1), (7, 2), (10, 2), (13, 1), (15, 2), (16, 2), (18, 1), (20, 2), (34, 2), (44, 1), (58, 2), (60, 2), (64, 2), (65, 2), (68, 1), (127, 1), (293, 1)], [], [(1, 1), (5, 2), (6, 1), (9, 2), (10, 2), (13, 1), (14, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 2), (44, 1), (58, 2), (60, 2), (64, 2), (65, 2), (68, 1), (127, 1), (293, 1)], [(1, 1), (5, 2), (6, 1), (7, 2), (9, 2), (13, 1), (14, 1), (15, 2), (16, 1), (18, 2), (19, 1), (34, 2), (44, 1), (58, 2), (60, 2), (64, 2), (65, 2), (68, 1), (127, 1), (293, 1)], [], [(1, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 1), (10, 2), (13, 2), (14, 2), (15, 2), (16, 1), (18, 2), (19, 2), (58, 1), (60, 1), (64, 1), (65, 1), (68, 2), (127, 2), (293, 2)], [(0, 1), (1, 2), (2, 2), (5, 1), (6, 1), (7, 2), (8, 2), (10, 2), (13, 2), (15, 2), (19, 1), (20, 1), (58, 1), (60, 1), (64, 1), (65, 1), (68, 2), (127, 2), (293, 2)], [], [], [(0, 2), (1, 1), (2, 2), (5, 1), (6, 1), (7, 2), (13, 2), (14, 1), (15, 1), (16, 1), (18, 2), (20, 1), (34, 2), (44, 1), (58, 1), (60, 2), (127, 1), (293, 2)], [], [(1, 2), (2, 2), (5, 2), (8, 1), (9, 1), (10, 1), (13, 1), (14, 2), (15, 1), (20, 2), (34, 2), (44, 1), (58, 2), (60, 1), (127, 2), (293, 1)], [], [], [(1, 1), (5, 1), (6, 1), (7, 2), (9, 1), (14, 2), (19, 1), (44, 1), (58, 1), (60, 2), (64, 1), (65, 1), (67, 2), (68, 2), (121, 1), (127, 1), (293, 2)], [(0, 1), (1, 1), (2, 2), (5, 2), (8, 1), (9, 1), (10, 2), (14, 2), (15, 2), (20, 1), (34, 2), (44, 1), (58, 2), (60, 2), (64, 2), (65, 2), (68, 1), (127, 2), (293, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 2), (5, 1), (6, 1), (7, 2), (16, 2), (18, 1), (20, 1), (44, 1), (58, 1), (60, 2), (127, 1), (293, 2)], [(1, 1), (2, 1), (5, 1), (6, 1), (7, 2), (9, 2), (14, 1), (16, 1), (18, 2), (19, 2), (20, 2), (44, 1), (58, 1), (60, 2), (127, 1), (293, 2)], [(0, 2), (1, 1), (2, 1), (3, 1), (5, 1), (6, 1), (7, 2), (16, 2), (18, 1), (20, 1), (44, 1), (58, 1), (60, 2), (127, 1), (293, 2)], [(0, 1), (1, 1), (2, 2), (3, 2), (4, 1), (5, 2), (8, 1), (10, 2), (15, 2), (16, 2), (18, 1), (19, 2), (20, 2), (34, 2), (44, 1), (58, 2), (60, 1), (127, 2), (293, 1)], [], [(0, 1), (1, 2), (2, 1), (5, 2), (7, 2), (8, 2), (10, 2), (12, 1), (14, 2), (15, 1), (20, 2), (34, 2), (44, 1), (58, 2), (60, 1), (127, 2), (293, 1)], [(0, 1), (1, 2), (2, 1), (5, 2), (8, 2), (10, 1), (15, 1), (20, 2), (34, 2), (44, 1), (58, 2), (60, 1), (127, 2), (293, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (9, 1), (10, 1), (13, 2), (14, 2), (15, 1), (19, 2), (20, 2), (34, 1), (44, 1), (60, 2), (64, 1), (65, 1), (68, 2), (127, 1)], [], [], [], [], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (9, 1), (10, 1), (13, 2), (14, 2), (15, 1), (19, 1), (20, 2), (34, 2), (44, 1), (58, 1), (60, 2), (127, 1)], [(0, 1), (2, 2), (3, 2), (4, 1), (6, 1), (7, 2), (9, 1), (10, 1), (13, 2), (14, 2), (15, 1), (19, 1), (20, 2), (34, 2), (44, 1), (60, 2), (64, 1), (127, 1)], [(0, 2), (2, 1), (6, 1), (7, 2), (8, 1), (9, 1), (10, 1), (13, 1), (14, 2), (16, 1), (18, 2), (19, 1), (20, 2), (117, 1), (127, 2)], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (13, 1), (14, 1), (16, 2), (18, 1), (19, 2), (20, 1), (127, 2), (174, 1)], [(2, 1), (5, 2), (6, 1), (7, 2), (8, 2), (10, 1), (13, 1), (14, 2), (16, 1), (18, 2), (19, 1), (20, 2), (127, 2), (236, 1)], [], [(0, 1), (1, 1), (2, 1), (6, 1), (7, 2), (9, 2), (14, 1), (16, 1), (18, 2), (19, 2), (20, 2), (34, 2), (44, 1), (60, 2), (64, 1), (65, 1), (68, 2), (127, 1)], [], [(0, 1), (1, 1), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (9, 1), (14, 2), (19, 1), (34, 2), (44, 1), (60, 2), (64, 1), (65, 1), (68, 2), (127, 1)], [(1, 1), (2, 1), (5, 1), (6, 1), (7, 2), (9, 2), (14, 1), (16, 1), (18, 2), (19, 2), (20, 2), (34, 2), (44, 1), (60, 2), (64, 1), (65, 1), (68, 2), (127, 1)], [], [], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (7, 2), (8, 2), (9, 2), (10, 1), (14, 1), (15, 1), (16, 2), (18, 1), (19, 2), (20, 1), (60, 1), (64, 2), (65, 2), (68, 1), (127, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (6, 1), (8, 2), (9, 2), (12, 2), (14, 2), (15, 1), (16, 1), (17, 1), (18, 1), (19, 2), (20, 1), (60, 1), (64, 2), (65, 2), (68, 1), (127, 2)], [], [], [(0, 1), (1, 1), (2, 1), (6, 1), (7, 2), (9, 2), (14, 1), (16, 1), (18, 2), (19, 2), (20, 2), (34, 2), (44, 1), (60, 2), (65, 1), (127, 1)], [(1, 1), (2, 2), (6, 1), (7, 2), (16, 2), (18, 1), (20, 1), (34, 2), (44, 1), (60, 2), (67, 1), (127, 1)], [], [], [(0, 1), (1, 1), (2, 1), (6, 1), (7, 2), (9, 2), (14, 1), (16, 1), (18, 2), (19, 1), (20, 2), (44, 1), (60, 2), (80, 1), (127, 1)], [(7, 2), (10, 1), (12, 1), (14, 2), (130, 1), (131, 2)], [], [], [], [], [], [(0, 1), (1, 2), (2, 2), (3, 2), (4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (10, 2), (12, 2), (13, 2), (14, 1), (16, 1), (18, 2), (20, 2), (34, 2), (44, 1), (58, 1), (64, 1), (65, 1), (68, 2), (99, 1), (293, 2)], [], [(1, 1), (3, 1), (4, 2), (5, 2), (6, 2), (7, 1), (8, 1), (10, 1), (13, 1), (15, 1), (19, 2), (20, 2), (58, 1), (64, 2), (65, 2), (68, 1), (293, 1), (392, 1)], [], [], [], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (5, 2), (6, 1), (7, 2), (8, 1), (10, 2), (15, 2), (16, 1), (18, 2), (19, 2), (34, 1), (44, 2), (57, 1), (58, 2), (293, 1)], [], [], [], [], [], [], [], [], [], [(0, 2), (1, 2), (2, 2), (6, 2), (7, 2), (9, 2), (10, 2), (12, 2), (14, 2), (16, 2), (18, 1), (19, 1), (20, 1), (34, 1), (44, 2), (60, 1), (64, 2), (65, 2), (68, 1), (127, 2), (131, 1)], [], [], [], [], [(1, 2), (2, 1), (3, 2), (4, 1), (6, 1), (7, 2), (8, 1), (10, 2), (15, 2), (16, 1), (19, 2), (34, 1), (44, 2)], [], [(0, 2), (2, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 2), (14, 2), (15, 2), (16, 2), (18, 1), (19, 1), (20, 2), (34, 1), (44, 2)], [(6, 1), (7, 2), (8, 2), (10, 1), (15, 2), (16, 1), (18, 2), (34, 1), (44, 2)], [], [], [], [], []] + +def comb97 : List (List (Nat × Nat)) := [[], [(1, 1), (2, 2), (9, 2), (10, 2), (11, 2), (12, 1), (13, 2), (15, 2), (16, 1), (18, 1), (19, 1), (24, 1), (58, 2), (64, 2), (66, 1), (72, 2), (137, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (18, 2), (19, 2), (24, 1), (58, 1), (60, 2), (64, 2), (66, 1), (67, 1), (72, 2), (121, 2), (137, 2), (173, 1)], [], [], [(0, 2), (1, 2), (2, 2), (3, 1), (4, 2), (7, 2), (8, 2), (9, 1), (10, 2), (11, 2), (12, 2), (13, 1), (15, 1), (16, 2), (19, 2), (34, 1), (58, 2), (60, 1), (64, 1), (66, 2), (67, 2), (72, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [], [], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (19, 2), (24, 1), (58, 1), (60, 2), (64, 2), (66, 1), (67, 1), (72, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [], [], [], [(0, 2), (1, 1), (2, 2), (7, 2), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (15, 2), (16, 1), (18, 1), (19, 1), (34, 2), (58, 2), (60, 1), (64, 1), (66, 2), (67, 2), (72, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [(0, 2), (1, 1), (2, 2), (8, 1), (9, 1), (10, 2), (11, 2), (12, 2), (13, 2), (15, 1), (16, 1), (18, 1), (20, 1), (34, 2), (58, 2), (60, 1), (64, 1), (66, 2), (67, 2), (72, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 1), (2, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 1), (10, 1), (11, 2), (12, 2), (18, 1), (19, 1), (24, 1), (58, 2), (60, 1), (64, 1), (66, 2), (67, 2), (72, 1), (121, 1), (137, 1), (172, 1), (173, 2)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 1), (9, 2), (10, 2), (11, 1), (12, 1), (13, 1), (18, 2), (19, 2), (24, 2), (58, 1), (60, 2), (64, 2), (66, 1), (67, 1), (72, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [(0, 1), (1, 2), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (18, 2), (19, 2), (24, 2), (58, 1), (60, 2), (64, 2), (66, 1), (67, 1), (72, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 1), (1, 2), (2, 1), (3, 2), (4, 1), (8, 1), (9, 2), (10, 1), (11, 1), (12, 1), (13, 2), (15, 1), (16, 2), (18, 2), (19, 2), (34, 2), (58, 1), (60, 2), (64, 2), (66, 1), (67, 1), (72, 2), (121, 2), (137, 2), (172, 2), (173, 1)], [], [(0, 1), (3, 2), (4, 1), (7, 1), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (18, 2), (24, 2), (34, 2), (58, 2), (60, 2), (64, 1), (66, 2), (67, 1), (72, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [], [], [(0, 1), (2, 1), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (15, 2), (16, 1), (18, 1), (34, 2), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (121, 1), (137, 2), (172, 1), (173, 2)], [], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (11, 2), (12, 2), (13, 2), (19, 2), (24, 1), (58, 2), (64, 1), (66, 2), (72, 1), (137, 1), (172, 2), (173, 1)], [], [(0, 2), (1, 1), (2, 2), (8, 1), (9, 1), (10, 2), (11, 1), (12, 2), (13, 2), (15, 1), (16, 2), (19, 1), (34, 2), (58, 2), (60, 1), (64, 1), (66, 2), (67, 2), (72, 1), (121, 1), (137, 2), (172, 1), (173, 2)], [(0, 2), (2, 2), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (19, 2), (24, 1), (58, 2), (60, 2), (64, 1), (66, 2), (67, 1), (72, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 2), (3, 1), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (15, 2), (16, 1), (19, 2), (34, 1), (58, 2), (60, 2), (64, 1), (66, 2), (67, 1), (72, 1), (121, 2), (137, 1), (172, 2), (173, 1)], [], [], [(0, 2), (1, 1), (2, 2), (8, 1), (9, 1), (10, 2), (11, 1), (12, 2), (13, 2), (15, 1), (16, 2), (19, 1), (34, 2), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (121, 1), (137, 2), (172, 1), (173, 2)], [], [(0, 2), (3, 1), (4, 2), (7, 2), (8, 2), (9, 1), (10, 1), (11, 1), (12, 1), (13, 1), (21, 1), (24, 2), (34, 1), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (121, 1), (137, 2), (172, 1), (173, 2)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (11, 2), (12, 2), (13, 2), (18, 2), (24, 1), (58, 2), (64, 1), (66, 2), (72, 1), (137, 1)], [], [(0, 1), (2, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (10, 2), (11, 1), (12, 1), (15, 2), (16, 1), (18, 1), (24, 1), (34, 1), (58, 1), (64, 2), (66, 1), (72, 2), (137, 2)], [], [(0, 1), (2, 2), (8, 2), (11, 2), (13, 1), (15, 2), (16, 1), (18, 2), (34, 1), (58, 2), (60, 1), (137, 1)], [], [(3, 1), (4, 2), (7, 2), (8, 2), (10, 1), (11, 2), (15, 1), (16, 2), (18, 2), (24, 2), (34, 2), (58, 2), (64, 1), (137, 1)], [], [(3, 2), (4, 1), (7, 1), (8, 1), (9, 2), (10, 2), (11, 1), (13, 1), (15, 2), (16, 1), (18, 1), (24, 1), (34, 1), (115, 1), (137, 2)], [], [(0, 2), (9, 1), (11, 1), (12, 1), (13, 2), (15, 2), (16, 2), (18, 1), (19, 1), (20, 2), (34, 2), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (121, 1), (137, 2), (173, 2), (174, 1)], [], [(0, 1), (2, 1), (4, 2), (7, 2), (8, 1), (9, 2), (10, 1), (11, 1), (12, 1), (13, 2), (18, 1), (24, 2), (34, 1), (58, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (121, 1), (137, 2), (173, 2), (181, 1)], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (19, 2), (34, 1), (58, 2), (64, 1), (66, 2), (72, 1), (137, 1)], [(0, 2), (1, 2), (2, 2), (3, 2), (4, 1), (7, 1), (9, 1), (11, 2), (12, 2), (13, 2), (19, 2), (34, 1), (58, 2), (64, 1), (66, 2), (72, 1), (137, 1)], [], [(0, 2), (1, 2), (2, 1), (3, 1), (4, 2), (5, 1), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (15, 2), (16, 1), (19, 2), (24, 2), (34, 2), (58, 2), (64, 1), (66, 2), (72, 1), (137, 1)], [(0, 1), (1, 1), (2, 1), (7, 1), (9, 2), (10, 1), (11, 1), (12, 1), (15, 1), (16, 2), (19, 1), (24, 1), (34, 1), (58, 1), (64, 2), (66, 1), (72, 2), (137, 2)], [], [(0, 1), (1, 1), (2, 1), (9, 2), (10, 2), (11, 1), (12, 1), (13, 2), (15, 2), (16, 2), (19, 1), (24, 1), (34, 1), (58, 1), (64, 2), (66, 1), (72, 2), (137, 2)], [], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (13, 1), (22, 1), (58, 1), (64, 2), (66, 1), (72, 2), (137, 2)], [(1, 2), (2, 1), (3, 2), (4, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (13, 1), (19, 2), (34, 1), (58, 2), (72, 1), (137, 1)], [], [(0, 2), (1, 2), (2, 2), (8, 1), (9, 1), (10, 1), (11, 2), (12, 2), (15, 2), (16, 1), (19, 2), (24, 2), (34, 2), (58, 2), (60, 2), (64, 1), (66, 2), (67, 1), (72, 1), (137, 1)], [], [(0, 1), (2, 2), (3, 1), (4, 2), (7, 2), (10, 1), (11, 2), (13, 2), (15, 1), (16, 2), (19, 2), (24, 1), (58, 2), (71, 1), (137, 1)], [], [(0, 1), (1, 1), (2, 1), (9, 1), (10, 2), (11, 1), (12, 1), (15, 1), (16, 2), (19, 1), (24, 1), (34, 1), (115, 1), (130, 1), (131, 2), (137, 2)], [], [], [], [], [], [(0, 1), (1, 1), (2, 2), (8, 2), (10, 2), (13, 2), (18, 2), (19, 1), (24, 2), (34, 1), (60, 2), (64, 2), (66, 1), (67, 1), (72, 2), (99, 1), (121, 2), (172, 2), (173, 1)], [], [], [(1, 1), (3, 1), (4, 2), (7, 1), (15, 2), (16, 1), (18, 1), (19, 2), (24, 2), (34, 2), (60, 2), (67, 1), (121, 2), (172, 1), (173, 1), (216, 1)], [], [], [], [(0, 2), (3, 2), (4, 1), (7, 1), (8, 2), (9, 2), (10, 2), (12, 1), (15, 1), (16, 2), (57, 1), (60, 1), (64, 2), (66, 1), (67, 2), (72, 2), (121, 1), (172, 1), (173, 2)], [], [], [], [], [], [], [], [], [], [(3, 2), (4, 1), (7, 2), (9, 1), (10, 1), (13, 1), (15, 2), (16, 1), (24, 2), (34, 1), (58, 1), (64, 2), (66, 1), (72, 2), (115, 2), (131, 1)], [], [], [], [], [(3, 2), (4, 1), (7, 2), (10, 1), (13, 2), (15, 1), (16, 2), (24, 2), (34, 1)], [(3, 2), (4, 1), (7, 1), (10, 2), (11, 1), (13, 1), (15, 2), (16, 1), (24, 2), (34, 1)], [], [], [], [], [], [], []] + +def comb98 : List (List (Nat × Nat)) := [[], [(0, 1), (5, 2), (6, 1), (9, 1), (11, 2), (12, 2), (14, 1), (16, 2), (24, 1), (25, 2), (57, 2), (63, 1), (64, 1), (137, 1)], [], [], [(0, 2), (2, 1), (3, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (57, 1), (63, 2), (121, 2), (137, 2), (234, 1)], [], [(2, 2), (3, 1), (6, 1), (7, 2), (10, 1), (11, 2), (14, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (57, 2), (63, 1), (121, 1), (137, 1), (233, 1), (234, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 1), (14, 1), (16, 2), (18, 2), (25, 1), (57, 1), (63, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [], [], [(0, 2), (2, 1), (3, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 1), (14, 1), (16, 2), (24, 2), (25, 1), (121, 2), (137, 2), (233, 2), (234, 1)], [(2, 1), (3, 1), (6, 1), (7, 2), (10, 1), (11, 2), (14, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 2), (57, 2), (63, 1), (121, 1), (137, 1), (233, 1), (234, 2)], [(1, 1), (3, 2), (4, 2), (6, 1), (7, 1), (10, 1), (11, 2), (12, 1), (14, 1), (16, 2), (18, 1), (20, 1), (24, 2), (25, 1), (34, 2), (57, 2), (63, 1), (121, 1), (137, 1), (233, 1), (234, 2)], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 2), (9, 2), (10, 1), (11, 2), (14, 2), (16, 1), (24, 1), (25, 2), (57, 2), (63, 1), (121, 1), (137, 1), (233, 1), (234, 2)], [], [], [], [(0, 2), (2, 1), (3, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 1), (14, 1), (16, 2), (24, 2), (25, 1), (57, 1), (63, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [(0, 1), (6, 1), (7, 1), (9, 2), (10, 2), (11, 1), (12, 1), (18, 1), (34, 2), (57, 1), (63, 2), (121, 2), (137, 2), (233, 2), (234, 1)], [], [(0, 2), (2, 1), (5, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (18, 1), (34, 2), (121, 2), (137, 1), (233, 2), (234, 1)], [], [], [], [(0, 2), (2, 2), (3, 1), (6, 1), (7, 2), (9, 1), (10, 1), (11, 1), (14, 1), (16, 2), (18, 1), (24, 2), (25, 1), (34, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [(0, 2), (2, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (14, 2), (16, 1), (57, 1), (63, 2), (137, 1), (233, 2), (234, 1)], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (14, 2), (16, 1), (121, 2), (137, 1), (233, 2), (234, 1)], [(2, 2), (3, 1), (5, 1), (7, 1), (10, 2), (11, 2), (12, 2), (18, 2), (24, 2), (25, 1), (34, 1), (121, 2), (137, 1), (233, 2), (234, 1)], [], [], [(0, 2), (3, 1), (5, 2), (6, 1), (7, 2), (9, 1), (10, 1), (11, 1), (18, 1), (24, 1), (25, 2), (34, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [], [(2, 2), (3, 1), (5, 2), (6, 1), (7, 2), (10, 1), (11, 1), (14, 1), (18, 1), (24, 1), (25, 2), (34, 2), (121, 1), (137, 2), (233, 1), (234, 2)], [(0, 2), (2, 1), (3, 1), (4, 2), (5, 2), (7, 2), (9, 1), (10, 1), (11, 1), (12, 1), (14, 2), (16, 1), (18, 2), (21, 1), (24, 2), (25, 1), (34, 1), (121, 1), (137, 2), (233, 1), (234, 2)], [(1, 2), (2, 1), (4, 1), (5, 2), (6, 2), (7, 1), (11, 2), (14, 2), (16, 1), (24, 2), (25, 1), (57, 1), (63, 2), (137, 1)], [], [], [(0, 1), (3, 1), (5, 1), (6, 1), (9, 2), (11, 1), (12, 2), (14, 2), (16, 1), (18, 2), (34, 1), (57, 2), (63, 1), (137, 2)], [(0, 1), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (11, 2), (12, 1), (18, 2), (24, 1), (25, 2), (34, 1), (60, 1), (64, 2), (137, 1)], [(0, 1), (2, 1), (3, 2), (5, 2), (9, 2), (11, 2), (14, 1), (16, 2), (18, 1), (34, 2), (58, 1), (64, 2), (137, 1)], [], [], [], [(2, 1), (5, 1), (6, 1), (9, 2), (11, 1), (12, 2), (14, 2), (16, 1), (18, 2), (34, 1), (120, 1), (137, 2)], [], [(0, 2), (1, 2), (2, 1), (4, 1), (5, 2), (6, 1), (9, 1), (10, 1), (11, 1), (12, 2), (14, 1), (16, 2), (18, 2), (20, 2), (24, 2), (25, 1), (34, 2), (121, 1), (137, 2), (234, 2), (236, 1)], [(2, 2), (4, 2), (5, 1), (11, 1), (14, 1), (16, 2), (24, 1), (25, 2), (137, 2), (181, 1)], [(0, 1), (2, 2), (3, 1), (5, 2), (6, 2), (11, 2), (12, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (57, 1), (63, 2), (137, 1)], [(3, 1), (5, 2), (6, 2), (11, 2), (12, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (57, 1), (63, 2), (137, 1)], [(0, 1), (2, 1), (3, 1), (4, 1), (5, 2), (9, 2), (11, 2), (14, 2), (16, 1), (18, 1), (24, 1), (25, 2), (34, 2), (57, 1), (63, 2), (137, 1)], [], [], [(0, 2), (3, 1), (6, 1), (7, 2), (9, 1), (10, 1), (11, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (57, 2), (63, 1), (137, 2)], [], [(0, 2), (3, 1), (6, 1), (9, 1), (11, 1), (12, 2), (14, 2), (16, 1), (17, 1), (18, 2), (24, 2), (25, 1), (34, 1), (57, 2), (63, 1), (137, 2)], [(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (7, 2), (9, 2), (11, 1), (12, 1), (22, 1), (57, 2), (63, 1), (137, 2)], [(0, 1), (2, 2), (3, 1), (5, 2), (6, 2), (11, 2), (12, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (64, 2), (66, 1), (137, 1)], [(0, 1), (2, 1), (3, 1), (4, 1), (5, 2), (9, 2), (11, 2), (14, 2), (16, 1), (18, 1), (24, 1), (25, 2), (34, 2), (57, 1), (60, 2), (63, 2), (65, 1), (137, 1)], [], [(0, 1), (2, 1), (3, 2), (5, 2), (11, 2), (14, 1), (16, 1), (18, 1), (24, 1), (25, 2), (34, 2), (64, 2), (73, 1), (137, 1)], [], [], [], [(0, 2), (3, 1), (9, 1), (11, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (127, 1), (137, 2)], [], [], [], [], [(3, 2), (5, 2), (6, 1), (7, 1), (9, 1), (10, 2), (12, 1), (14, 2), (16, 1), (18, 2), (24, 1), (25, 2), (34, 1), (57, 1), (63, 2), (64, 2), (99, 1), (121, 2), (233, 2), (234, 1)], [], [], [], [(0, 1), (1, 2), (2, 1), (4, 1), (5, 2), (6, 2), (7, 1), (9, 2), (10, 2), (18, 2), (24, 2), (25, 1), (34, 2), (57, 2), (63, 1), (121, 2), (233, 1), (234, 1), (274, 1)], [], [], [(2, 2), (3, 2), (5, 1), (7, 2), (9, 1), (10, 1), (12, 1), (14, 1), (16, 2), (57, 1), (64, 2), (121, 1), (233, 1), (234, 2)], [], [], [], [], [], [], [], [], [], [(0, 2), (3, 2), (9, 2), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (57, 2), (63, 1), (120, 2), (130, 1)], [], [], [], [], [(0, 1), (2, 1), (3, 1), (9, 2), (18, 2), (24, 2), (25, 1), (34, 1)], [(0, 2), (3, 1), (9, 1), (11, 1), (14, 1), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1)], [], [], [], [], [], [], []] + +def comb99 : List (List (Nat × Nat)) := [[], [], [(6, 2), (8, 2), (11, 2), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (18, 1), (34, 2), (51, 2), (60, 1), (65, 2), (68, 1), (117, 2), (137, 2)], [], [], [], [], [(0, 1), (1, 2), (6, 1), (7, 1), (11, 2), (12, 2), (17, 1), (18, 2), (19, 2), (34, 1), (51, 2), (60, 1), (65, 2), (68, 1), (117, 2), (120, 2), (137, 2), (293, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (6, 1), (7, 1), (11, 1), (12, 2), (14, 1), (15, 1), (16, 2), (17, 1), (19, 1), (51, 2), (57, 1), (60, 2), (65, 1), (68, 2), (117, 1), (120, 1), (137, 1), (293, 2)], [], [], [(1, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (13, 1), (14, 1), (15, 1), (16, 2), (17, 1), (34, 2), (51, 2), (71, 1), (74, 2), (75, 1), (117, 2), (120, 2), (137, 2), (293, 1)], [(1, 1), (2, 2), (3, 1), (7, 2), (8, 1), (9, 2), (11, 1), (12, 1), (13, 2), (14, 2), (15, 2), (16, 1), (17, 1), (18, 1), (51, 2), (57, 1), (60, 2), (77, 1), (117, 1), (120, 1), (137, 1), (293, 2)], [], [(6, 2), (8, 2), (9, 1), (11, 1), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (18, 1), (34, 2), (51, 2), (60, 1), (65, 2), (68, 1), (117, 2), (120, 2), (137, 2), (293, 1)], [(1, 2), (2, 1), (3, 1), (7, 1), (8, 1), (9, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 1), (16, 1), (17, 1), (18, 1), (20, 1), (51, 2), (57, 1), (60, 2), (65, 1), (68, 2), (117, 1), (120, 1), (137, 1), (293, 2)], [], [], [(0, 1), (6, 2), (8, 2), (11, 2), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (18, 1), (19, 2), (34, 2), (51, 2), (60, 1), (65, 2), (68, 1), (117, 2), (120, 2), (137, 2), (293, 1)], [(0, 2), (1, 2), (2, 2), (3, 1), (7, 1), (8, 1), (11, 1), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (19, 1), (51, 2), (57, 2), (60, 2), (65, 1), (68, 2), (117, 1), (120, 1), (137, 1), (293, 2)], [(0, 2), (1, 2), (2, 2), (3, 1), (6, 1), (7, 1), (11, 1), (12, 2), (13, 2), (14, 1), (15, 1), (16, 2), (17, 1), (19, 1), (51, 2), (57, 2), (60, 2), (65, 1), (68, 2), (117, 1), (120, 1), (137, 1), (293, 2)], [], [], [], [(6, 2), (8, 1), (9, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (18, 1), (19, 1), (34, 2), (120, 1), (137, 2), (293, 2)], [(1, 2), (2, 2), (3, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (13, 1), (14, 2), (15, 2), (16, 1), (17, 2), (34, 2), (51, 1), (57, 1), (120, 2), (137, 1), (293, 1)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (11, 2), (12, 1), (17, 2), (18, 1), (19, 2), (34, 2), (51, 1), (57, 1), (60, 1), (65, 2), (68, 1), (120, 2), (137, 1), (293, 1)], [], [(0, 2), (1, 1), (19, 1), (120, 1), (137, 2), (293, 2)], [], [], [], [(0, 2), (1, 1), (7, 2), (11, 1), (19, 1), (120, 1), (137, 2), (293, 2)], [(1, 2), (2, 1), (3, 2), (6, 2), (7, 1), (9, 1), (11, 2), (12, 2), (14, 2), (15, 2), (16, 1), (17, 2), (34, 2), (51, 1), (57, 2), (120, 2), (137, 1), (293, 1)], [(1, 2), (2, 2), (3, 1), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (15, 2), (16, 1), (17, 2), (34, 2), (51, 1), (57, 2), (120, 2), (137, 1), (293, 1)], [], [], [(6, 1), (8, 1), (11, 1), (12, 1), (13, 2), (14, 1), (15, 1), (16, 2), (17, 2), (18, 2), (34, 1), (51, 1), (60, 2), (65, 1), (68, 2), (117, 1), (137, 2)], [], [], [(1, 2), (2, 1), (3, 2), (7, 1), (8, 2), (12, 1), (13, 1), (14, 2), (15, 2), (16, 1), (17, 2), (51, 1), (57, 1), (60, 1), (117, 2), (137, 1)], [], [], [], [(6, 2), (8, 1), (9, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (18, 1), (34, 2), (115, 1), (137, 2)], [(6, 2), (8, 1), (9, 2), (11, 1), (13, 2), (14, 1), (15, 1), (16, 2), (18, 1), (34, 2), (120, 1), (137, 2)], [(0, 2), (1, 2), (2, 2), (3, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 1), (13, 1), (14, 1), (15, 2), (16, 2), (17, 2), (18, 2), (19, 1), (20, 2), (51, 1), (57, 2), (117, 2), (137, 1), (174, 1)], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 1), (13, 1), (14, 1), (15, 2), (16, 2), (17, 2), (18, 2), (19, 1), (20, 2), (51, 1), (57, 2), (117, 2), (137, 1), (236, 1)], [], [(6, 2), (9, 1), (12, 1), (17, 2), (18, 1), (34, 2), (51, 1), (60, 2), (65, 1), (68, 2), (117, 1), (137, 2)], [(0, 1), (1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (9, 2), (12, 1), (17, 2), (18, 1), (19, 2), (51, 1), (57, 1), (60, 1), (65, 2), (68, 1), (117, 2), (137, 1)], [], [], [(6, 2), (11, 1), (12, 1), (17, 2), (18, 1), (34, 2), (51, 1), (60, 2), (65, 1), (68, 2), (117, 1), (137, 2)], [(6, 2), (7, 2), (10, 1), (11, 1), (12, 1), (17, 2), (18, 1), (34, 2), (51, 1), (60, 2), (65, 1), (68, 2), (117, 1), (137, 2)], [(1, 1), (2, 1), (3, 2), (6, 2), (7, 2), (11, 2), (12, 1), (14, 2), (16, 1), (17, 2), (51, 1), (57, 2), (60, 1), (65, 2), (68, 1), (117, 2), (137, 1)], [(1, 1), (2, 2), (3, 1), (7, 2), (8, 2), (11, 2), (51, 1), (57, 2), (60, 1), (65, 2), (68, 1), (117, 2), (137, 1)], [], [], [(6, 2), (12, 1), (17, 2), (18, 1), (34, 2), (51, 1), (60, 2), (65, 1), (117, 1), (137, 2)], [(6, 1), (8, 1), (12, 1), (17, 2), (18, 1), (34, 2), (51, 1), (60, 2), (67, 1), (117, 1), (137, 2)], [(1, 2), (2, 1), (3, 2), (6, 2), (7, 1), (12, 2), (14, 1), (15, 2), (16, 1), (17, 2), (51, 1), (57, 2), (71, 1), (73, 1), (74, 2), (117, 2), (137, 1)], [(1, 2), (2, 2), (3, 1), (7, 1), (8, 2), (12, 1), (14, 2), (15, 2), (16, 1), (17, 2), (51, 1), (57, 2), (71, 1), (117, 2), (137, 1)], [], [], [], [], [], [], [], [], [(1, 1), (2, 1), (3, 2), (6, 1), (7, 2), (8, 2), (9, 2), (11, 2), (13, 2), (14, 1), (15, 2), (16, 1), (18, 2), (34, 2), (57, 1), (60, 2), (65, 1), (68, 2), (117, 1), (120, 1), (157, 1), (293, 2)], [(0, 1), (2, 2), (3, 1), (6, 2), (8, 2), (9, 1), (11, 1), (12, 2), (13, 1), (14, 1), (15, 1), (16, 2), (17, 1), (19, 2), (51, 2), (60, 1), (65, 2), (68, 1), (117, 2), (120, 1), (293, 1), (392, 1)], [], [], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (12, 2), (17, 1), (18, 2), (19, 2), (34, 1), (51, 2), (57, 1), (114, 1), (120, 2), (293, 1)], [], [], [], [], [(1, 2), (2, 1), (3, 2), (6, 2), (7, 1), (12, 2), (13, 1), (14, 2), (15, 2), (16, 1), (17, 1), (18, 1), (34, 2), (51, 2), (57, 1)], [], [], [], [], [(0, 1), (2, 1), (3, 2), (8, 1), (9, 2), (12, 1), (14, 1), (15, 1), (16, 2), (17, 1), (19, 2), (34, 1), (51, 2), (57, 1), (60, 1), (65, 2), (68, 1), (71, 2), (74, 1)], [], [], [], [(0, 1), (1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (9, 2), (11, 1), (12, 2), (17, 1), (19, 2), (34, 1), (51, 2), (57, 1)], [], [], [], [], [(1, 1), (2, 1), (3, 2), (7, 2), (8, 1), (12, 2), (17, 1), (18, 2), (34, 1), (51, 2), (57, 2)], [(1, 1), (2, 2), (3, 1), (6, 1), (7, 2), (12, 2), (17, 1), (18, 2), (34, 1), (51, 2), (57, 2)], [], []] + +def comb100 : List (List (Nat × Nat)) := [[], [], [(0, 2), (1, 1), (2, 2), (4, 2), (5, 1), (7, 2), (8, 1), (9, 1), (11, 1), (12, 2), (17, 2), (18, 1), (19, 2), (44, 2), (58, 1), (66, 1), (72, 2), (115, 2), (127, 2)], [(0, 1), (6, 1), (8, 2), (9, 2), (11, 2), (15, 2), (16, 2), (17, 2), (18, 2), (19, 2), (20, 2), (34, 1), (58, 1), (66, 2), (72, 1), (115, 2), (127, 1), (173, 1)], [], [], [], [(0, 2), (1, 1), (2, 2), (4, 2), (5, 1), (6, 1), (7, 2), (8, 1), (9, 1), (11, 1), (12, 2), (17, 2), (44, 1), (58, 2), (66, 1), (72, 2), (115, 1), (127, 2), (172, 1), (173, 2)], [], [(0, 1), (6, 1), (8, 2), (9, 2), (11, 2), (15, 2), (16, 2), (17, 2), (19, 2), (20, 2), (34, 1), (58, 1), (66, 2), (72, 1), (115, 2), (127, 1), (172, 2), (173, 1)], [], [(0, 2), (1, 2), (2, 1), (4, 1), (5, 2), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (15, 2), (16, 1), (17, 1), (19, 2), (34, 1), (44, 1), (58, 2), (74, 2), (75, 1), (115, 1), (127, 2), (172, 1), (173, 2)], [], [], [(1, 2), (4, 1), (5, 2), (7, 1), (8, 2), (11, 2), (12, 1), (15, 2), (16, 1), (18, 1), (19, 2), (34, 1), (44, 1), (58, 2), (66, 1), (72, 2), (115, 1), (127, 2), (172, 1), (173, 2)], [], [(2, 1), (6, 2), (8, 1), (11, 1), (15, 2), (17, 2), (18, 2), (20, 1), (34, 1), (58, 1), (66, 2), (72, 1), (115, 2), (127, 1), (172, 2), (173, 1)], [], [], [(2, 1), (6, 1), (8, 2), (11, 1), (15, 2), (17, 2), (18, 2), (20, 1), (34, 1), (58, 1), (66, 2), (72, 1), (115, 2), (127, 1), (172, 2), (173, 1)], [], [(0, 1), (1, 2), (2, 1), (4, 1), (5, 2), (7, 1), (8, 2), (9, 2), (11, 2), (17, 2), (18, 2), (19, 1), (44, 1), (58, 1), (66, 2), (72, 1), (115, 2), (127, 1), (172, 2), (173, 1)], [], [], [(0, 1), (1, 1), (2, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 2), (9, 2), (11, 1), (12, 1), (17, 2), (18, 2), (19, 1), (44, 2), (58, 2), (115, 1), (127, 2), (172, 2), (173, 1)], [], [(0, 2), (2, 1), (6, 2), (8, 1), (9, 1), (11, 2), (12, 2), (15, 2), (17, 1), (18, 1), (19, 1), (20, 1), (34, 1), (58, 1), (115, 2), (127, 1), (172, 1), (173, 2)], [], [], [], [(0, 1), (2, 1), (6, 2), (8, 1), (9, 1), (11, 1), (12, 2), (15, 2), (17, 2), (19, 2), (20, 1), (34, 1), (58, 2), (66, 1), (72, 2), (115, 2), (127, 1), (172, 1), (173, 2)], [(0, 2), (1, 2), (2, 2), (4, 1), (5, 2), (6, 1), (7, 2), (9, 1), (11, 2), (12, 2), (15, 2), (17, 1), (19, 2), (20, 1), (34, 1), (44, 2), (58, 2), (115, 1), (127, 2), (172, 2), (173, 1)], [(0, 1), (2, 2), (9, 2), (11, 1), (12, 1), (15, 2), (17, 2), (19, 2), (20, 1), (34, 1), (58, 1), (115, 2), (127, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 1), (16, 2), (17, 2), (19, 2), (20, 1), (34, 1), (44, 2), (58, 2), (115, 1), (127, 2), (172, 2), (173, 1)], [(0, 1), (2, 2), (8, 2), (9, 2), (11, 2), (12, 2), (15, 1), (17, 1), (19, 1), (20, 2), (34, 2), (44, 1), (58, 2), (115, 1), (127, 2), (172, 2), (173, 1)], [(0, 1), (2, 1), (6, 2), (8, 1), (9, 2), (11, 1), (12, 2), (15, 2), (17, 2), (19, 2), (20, 1), (34, 1), (58, 1), (115, 2), (127, 1), (172, 1), (173, 2)], [], [(0, 2), (1, 2), (2, 2), (5, 2), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (16, 1), (17, 1), (20, 2), (21, 1), (44, 1), (58, 1), (115, 2), (127, 1), (172, 1), (173, 2)], [], [(0, 1), (1, 2), (2, 1), (4, 1), (5, 2), (7, 1), (8, 2), (9, 2), (11, 2), (12, 1), (17, 1), (18, 2), (19, 1), (44, 1), (58, 2), (66, 2), (72, 1), (115, 1), (127, 2)], [(0, 2), (2, 1), (6, 2), (8, 1), (9, 1), (11, 1), (12, 2), (15, 2), (17, 2), (18, 1), (19, 1), (20, 1), (34, 1), (58, 1), (66, 1), (72, 2), (115, 2), (127, 1)], [], [], [(0, 1), (2, 2), (9, 2), (11, 1), (12, 1), (15, 2), (17, 2), (18, 1), (19, 1), (20, 1), (34, 1), (58, 1), (115, 2), (127, 1)], [], [(0, 2), (1, 2), (2, 2), (4, 1), (5, 2), (7, 1), (8, 2), (9, 1), (11, 2), (12, 2), (15, 2), (17, 1), (18, 2), (20, 1), (34, 1), (44, 1), (117, 1), (127, 2)], [], [(0, 1), (2, 2), (6, 1), (8, 2), (9, 1), (11, 2), (12, 2), (15, 1), (17, 1), (18, 2), (19, 2), (20, 2), (34, 2), (120, 1), (127, 2)], [(0, 1), (2, 1), (4, 2), (5, 1), (6, 2), (8, 1), (9, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (18, 1), (19, 2), (34, 1), (58, 1), (115, 2), (127, 1), (173, 2), (174, 1)], [], [(0, 2), (1, 2), (2, 2), (5, 2), (6, 1), (7, 1), (8, 1), (9, 1), (11, 2), (12, 2), (16, 1), (17, 1), (18, 1), (20, 2), (44, 1), (58, 1), (115, 2), (127, 1), (173, 2), (181, 1)], [(1, 2), (2, 2), (4, 1), (5, 2), (6, 2), (7, 1), (9, 1), (12, 2), (15, 2), (19, 2), (20, 1), (34, 1), (44, 1), (58, 2), (66, 2), (72, 1), (115, 1), (127, 2)], [], [(0, 1), (2, 2), (4, 1), (5, 2), (9, 2), (12, 1), (15, 2), (19, 2), (20, 1), (34, 1), (58, 1), (66, 1), (72, 2), (115, 2), (127, 1)], [], [], [(0, 2), (2, 2), (6, 1), (7, 2), (8, 2), (9, 1), (10, 1), (12, 2), (15, 1), (19, 1), (20, 2), (34, 2), (58, 2), (66, 2), (72, 1), (115, 1), (127, 2)], [(0, 1), (2, 1), (6, 2), (8, 1), (9, 2), (12, 2), (15, 2), (16, 1), (17, 2), (19, 2), (20, 1), (34, 1), (58, 1), (66, 1), (72, 2), (115, 2), (127, 1)], [], [(0, 2), (1, 2), (2, 2), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (11, 1), (12, 2), (16, 1), (17, 2), (20, 2), (22, 1), (44, 1), (58, 1), (66, 1), (72, 2), (115, 2), (127, 1)], [(1, 2), (2, 2), (4, 1), (5, 2), (6, 2), (7, 1), (12, 2), (15, 2), (19, 2), (20, 1), (34, 1), (44, 1), (58, 2), (72, 1), (115, 1), (127, 2)], [], [(0, 2), (1, 1), (2, 1), (4, 2), (5, 1), (7, 2), (9, 1), (16, 1), (17, 2), (19, 1), (20, 2), (34, 2), (58, 2), (66, 2), (67, 1), (72, 1), (115, 1), (127, 2)], [(2, 2), (12, 1), (15, 2), (19, 2), (20, 1), (34, 1), (58, 1), (73, 1), (74, 2), (115, 2), (127, 1)], [], [(0, 2), (1, 2), (4, 1), (5, 1), (6, 2), (7, 1), (9, 2), (11, 1), (12, 1), (16, 1), (17, 2), (20, 2), (44, 1), (80, 1), (115, 2), (127, 1)], [], [], [], [], [], [], [], [(1, 2), (2, 2), (4, 1), (5, 2), (7, 1), (8, 2), (11, 1), (15, 1), (17, 2), (18, 2), (19, 2), (20, 2), (34, 2), (44, 1), (58, 1), (66, 2), (72, 1), (115, 2), (157, 1), (172, 2), (173, 1)], [], [(0, 1), (2, 1), (6, 2), (7, 2), (8, 2), (9, 2), (12, 2), (16, 1), (17, 2), (18, 1), (20, 2), (44, 2), (66, 1), (72, 2), (172, 1), (173, 1), (216, 1)], [], [], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 1), (15, 1), (17, 2), (19, 1), (20, 2), (34, 2), (44, 1), (58, 1), (114, 1), (115, 2), (172, 1), (173, 2)], [], [], [], [], [(0, 1), (1, 2), (4, 1), (5, 2), (6, 1), (7, 1), (8, 1), (9, 2), (11, 1), (12, 1), (15, 1), (17, 2), (18, 1), (20, 2), (34, 2), (44, 2)], [], [], [], [], [(1, 1), (2, 2), (4, 2), (5, 1), (6, 1), (7, 2), (11, 2), (15, 2), (19, 2), (20, 1), (34, 1), (44, 2), (66, 1), (72, 2), (74, 1)], [], [], [], [(0, 2), (1, 1), (4, 2), (5, 1), (6, 2), (7, 2), (8, 2), (9, 1), (11, 2), (12, 2), (15, 2), (17, 1), (19, 2), (20, 1), (34, 1), (44, 2)], [], [], [], [(0, 2), (1, 1), (2, 2), (4, 2), (5, 2), (6, 1), (7, 2), (9, 1), (11, 2), (15, 2), (19, 2), (20, 1), (34, 1), (44, 2)], [], [], [], []] + +def comb101 : List (List (Nat × Nat)) := [[], [], [(1, 1), (3, 1), (7, 2), (8, 2), (9, 1), (15, 2), (16, 1), (18, 2), (34, 1), (63, 1), (120, 2), (130, 2)], [], [(0, 2), (1, 2), (4, 1), (5, 2), (6, 1), (10, 1), (13, 2), (16, 2), (18, 2), (24, 2), (25, 1), (63, 2), (64, 2), (120, 2), (130, 1), (234, 1)], [], [], [(0, 1), (3, 1), (4, 1), (5, 2), (7, 2), (8, 2), (10, 1), (15, 2), (16, 1), (18, 2), (24, 2), (25, 1), (34, 1), (63, 1), (64, 1), (120, 1), (130, 2), (233, 1), (234, 2)], [], [], [(0, 2), (1, 2), (4, 1), (5, 2), (6, 1), (10, 1), (13, 2), (16, 2), (18, 2), (25, 1), (63, 2), (64, 2), (120, 2), (130, 1), (233, 2), (234, 1)], [(0, 1), (1, 1), (3, 1), (4, 1), (5, 2), (7, 1), (9, 2), (10, 1), (15, 1), (16, 2), (18, 1), (24, 2), (25, 1), (34, 2), (64, 2), (73, 2), (75, 1), (120, 1), (130, 2), (233, 1), (234, 2)], [], [(0, 2), (1, 2), (4, 1), (5, 2), (10, 1), (13, 2), (16, 2), (24, 2), (25, 1), (64, 2), (120, 2), (130, 1), (233, 2), (234, 1)], [(0, 1), (1, 1), (3, 1), (4, 1), (5, 2), (7, 1), (8, 2), (10, 1), (15, 1), (16, 1), (18, 2), (24, 2), (25, 1), (34, 2), (63, 1), (64, 1), (120, 1), (130, 2), (233, 1), (234, 2)], [], [], [(0, 2), (1, 2), (4, 1), (5, 2), (8, 1), (10, 1), (13, 2), (16, 2), (24, 2), (25, 1), (63, 2), (64, 2), (120, 2), (130, 1), (233, 2), (234, 1)], [(0, 1), (1, 1), (4, 2), (5, 1), (8, 2), (10, 2), (13, 2), (16, 1), (24, 1), (25, 2), (63, 1), (64, 1), (120, 1), (130, 2), (233, 1), (234, 2)], [], [(0, 2), (1, 2), (4, 1), (5, 2), (6, 1), (10, 1), (13, 2), (16, 2), (24, 2), (25, 1), (63, 2), (64, 2), (120, 2), (130, 1), (233, 2), (234, 1)], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 1), (13, 1), (14, 2), (15, 1), (18, 1), (34, 2), (63, 2), (64, 2), (120, 2), (130, 1), (233, 2), (234, 1)], [], [], [(1, 2), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (10, 2), (13, 2), (15, 2), (16, 1), (18, 2), (24, 1), (25, 2), (34, 1), (64, 2), (120, 1), (130, 2), (233, 2), (234, 1)], [], [], [(0, 1), (1, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (13, 1), (14, 1), (16, 1), (24, 1), (25, 2), (64, 1), (120, 2), (130, 1), (233, 1), (234, 2)], [], [], [], [(0, 2), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 2), (11, 2), (14, 2), (15, 1), (16, 2), (18, 1), (24, 1), (25, 2), (34, 2), (64, 2), (120, 1), (130, 2), (233, 2), (234, 1)], [], [(0, 1), (3, 2), (6, 1), (8, 2), (9, 2), (13, 2), (16, 2), (64, 1), (120, 2), (130, 1), (233, 1), (234, 2)], [(0, 2), (1, 2), (4, 2), (5, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 2), (11, 2), (14, 2), (15, 2), (16, 2), (18, 1), (24, 1), (25, 2), (34, 2), (64, 2), (120, 1), (130, 2), (233, 2), (234, 1)], [], [], [(0, 1), (3, 1), (6, 2), (8, 1), (9, 2), (13, 2), (14, 1), (16, 2), (64, 1), (120, 2), (130, 1), (233, 1), (234, 2)], [(0, 1), (4, 1), (5, 1), (6, 2), (7, 1), (8, 1), (9, 2), (10, 2), (13, 1), (14, 2), (15, 1), (18, 1), (21, 1), (24, 1), (25, 2), (34, 2), (64, 1), (120, 2), (130, 1), (233, 1), (234, 2)], [], [(4, 2), (5, 1), (6, 1), (7, 1), (9, 2), (10, 2), (11, 1), (13, 1), (14, 1), (15, 2), (18, 2), (24, 1), (25, 2), (34, 1), (63, 2), (120, 1), (130, 2)], [], [(1, 1), (3, 2), (4, 2), (5, 1), (6, 1), (8, 1), (9, 1), (10, 2), (13, 2), (16, 2), (24, 1), (25, 2), (63, 1), (120, 2), (130, 1)], [], [], [(1, 1), (3, 2), (4, 2), (5, 1), (6, 1), (8, 2), (10, 2), (13, 2), (16, 2), (24, 1), (25, 2), (64, 1), (120, 2), (130, 1)], [(1, 2), (6, 2), (7, 1), (8, 1), (11, 2), (14, 2), (15, 1), (16, 2), (18, 1), (34, 2), (117, 1), (130, 2)], [(1, 2), (3, 2), (4, 1), (5, 2), (6, 1), (8, 2), (9, 2), (10, 1), (13, 1), (16, 1), (24, 2), (25, 1), (115, 1), (130, 2)], [], [], [(0, 1), (1, 1), (3, 1), (6, 1), (7, 2), (8, 2), (9, 2), (11, 1), (13, 1), (14, 1), (16, 1), (18, 1), (24, 1), (25, 2), (64, 1), (120, 2), (130, 1), (234, 2), (236, 1)], [(1, 1), (5, 2), (6, 2), (7, 1), (8, 1), (9, 1), (10, 1), (13, 1), (14, 2), (15, 1), (18, 1), (24, 2), (25, 1), (34, 2), (120, 2), (130, 1), (181, 1)], [(4, 2), (5, 1), (6, 2), (7, 1), (8, 2), (10, 2), (13, 2), (15, 1), (16, 1), (18, 1), (24, 1), (25, 2), (34, 2), (63, 2), (120, 1), (130, 2)], [], [], [(3, 2), (4, 2), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 2), (11, 2), (14, 2), (63, 1), (120, 2), (130, 1)], [(3, 2), (6, 1), (9, 2), (11, 1), (14, 1), (63, 2), (120, 1), (130, 2)], [], [], [(3, 1), (6, 2), (7, 1), (9, 1), (10, 2), (11, 2), (16, 2), (17, 1), (63, 1), (120, 2), (130, 1)], [(4, 1), (5, 1), (6, 2), (7, 2), (9, 1), (10, 1), (11, 2), (13, 2), (14, 1), (15, 1), (16, 1), (18, 1), (22, 1), (24, 1), (25, 2), (34, 2), (63, 1), (120, 2), (130, 1)], [(4, 2), (5, 1), (6, 1), (7, 1), (8, 2), (10, 2), (13, 2), (15, 1), (16, 1), (18, 1), (24, 1), (25, 2), (34, 2), (64, 2), (66, 1), (120, 1), (130, 2)], [(1, 1), (3, 2), (6, 1), (7, 2), (9, 2), (11, 1), (14, 1), (15, 2), (63, 2), (65, 1), (120, 1), (130, 2)], [], [], [(3, 1), (6, 2), (7, 1), (8, 1), (9, 1), (10, 2), (11, 2), (14, 2), (71, 1), (120, 2), (130, 1)], [(4, 1), (5, 1), (6, 2), (7, 2), (8, 1), (9, 1), (10, 1), (11, 2), (13, 2), (14, 1), (15, 1), (16, 1), (18, 1), (24, 1), (25, 2), (34, 2), (80, 1), (120, 2), (130, 1)], [], [], [], [], [], [], [], [(0, 2), (1, 2), (3, 1), (6, 1), (7, 1), (13, 1), (14, 2), (15, 1), (18, 1), (34, 2), (63, 2), (64, 2), (120, 2), (157, 1), (233, 2), (234, 1)], [], [], [(0, 2), (1, 1), (3, 1), (4, 2), (5, 1), (6, 1), (7, 2), (8, 1), (9, 2), (10, 2), (11, 1), (14, 1), (16, 2), (18, 1), (24, 1), (25, 2), (63, 1), (64, 2), (233, 1), (234, 1), (274, 1)], [], [], [], [(0, 1), (3, 2), (4, 2), (5, 1), (6, 2), (7, 1), (8, 1), (9, 2), (10, 2), (13, 1), (15, 1), (18, 1), (24, 1), (25, 2), (34, 2), (64, 1), (114, 1), (120, 2), (233, 1), (234, 2)], [], [], [], [], [(1, 1), (3, 2), (4, 1), (5, 2), (7, 1), (8, 1), (10, 1), (13, 1), (15, 1), (18, 1), (24, 2), (25, 1), (34, 2)], [], [], [], [], [(3, 2), (4, 1), (5, 2), (6, 2), (7, 2), (9, 1), (10, 1), (13, 1), (15, 2), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1), (63, 1), (64, 2), (73, 1)], [], [], [], [(3, 2), (4, 1), (5, 2), (6, 2), (7, 2), (8, 1), (10, 1), (13, 1), (15, 2), (18, 2), (24, 2), (25, 1), (34, 1)], [], [], [], [(3, 1), (4, 2), (5, 2), (7, 2), (10, 1), (13, 1), (14, 1), (15, 2), (16, 2), (18, 2), (24, 2), (25, 1), (34, 1)], [], [], [], []] + +def comb102 : List (List (Nat × Nat)) := [[], [], [], [(0, 2), (2, 1), (6, 2), (7, 1), (11, 1), (14, 1), (15, 2), (16, 2), (18, 2), (19, 2), (34, 1), (58, 1), (66, 2), (72, 1), (137, 2), (173, 1)], [], [], [], [], [(0, 2), (2, 2), (6, 1), (11, 2), (12, 2), (14, 2), (16, 1), (19, 2), (58, 2), (66, 1), (72, 2), (137, 1), (172, 1), (173, 2)], [(0, 2), (2, 1), (6, 2), (7, 1), (11, 1), (14, 1), (15, 2), (16, 2), (19, 2), (34, 1), (58, 1), (66, 2), (72, 1), (137, 2), (172, 2), (173, 1)], [], [], [(1, 2), (2, 2), (6, 1), (7, 1), (11, 2), (12, 1), (14, 2), (16, 1), (18, 1), (34, 1), (58, 2), (66, 1), (67, 2), (72, 2), (77, 1), (137, 1), (172, 1), (173, 2)], [], [], [(2, 1), (7, 1), (11, 2), (12, 2), (14, 2), (15, 2), (16, 1), (18, 1), (20, 1), (34, 1), (58, 2), (66, 1), (72, 2), (137, 1), (172, 1), (173, 2)], [(0, 2), (2, 1), (7, 1), (11, 1), (14, 1), (15, 2), (16, 2), (18, 2), (19, 2), (34, 1), (58, 1), (66, 2), (72, 1), (137, 2), (172, 2), (173, 1)], [], [(3, 1), (6, 2), (7, 1), (11, 1), (14, 1), (15, 2), (16, 2), (18, 2), (19, 2), (34, 1), (58, 1), (66, 2), (72, 1), (137, 2), (172, 2), (173, 1)], [], [(0, 1), (2, 2), (6, 1), (7, 2), (11, 2), (14, 2), (15, 1), (16, 1), (18, 1), (19, 1), (34, 2), (58, 2), (66, 1), (72, 2), (137, 1), (172, 1), (173, 2)], [(0, 1), (3, 1), (6, 2), (7, 2), (11, 1), (12, 2), (18, 2), (19, 2), (58, 1), (66, 2), (72, 1), (137, 2), (172, 2), (173, 1)], [], [], [], [(0, 1), (2, 2), (3, 2), (11, 2), (14, 2), (16, 1), (18, 2), (58, 2), (137, 1), (172, 2), (173, 1)], [(2, 2), (3, 1), (7, 2), (11, 1), (12, 1), (14, 1), (15, 2), (16, 2), (18, 1), (34, 1), (58, 1), (137, 2), (172, 1), (173, 2)], [], [], [(0, 2), (1, 2), (2, 1), (3, 2), (11, 2), (14, 2), (16, 1), (19, 2), (34, 1), (58, 2), (60, 1), (67, 2), (137, 1), (172, 2), (173, 1)], [(2, 1), (3, 1), (7, 1), (11, 1), (12, 2), (14, 1), (15, 2), (16, 2), (19, 1), (34, 1), (58, 2), (66, 1), (72, 2), (137, 2), (172, 1), (173, 2)], [], [(2, 2), (3, 1), (6, 1), (7, 1), (11, 1), (12, 1), (14, 1), (15, 2), (16, 2), (19, 1), (34, 1), (58, 1), (137, 2), (172, 1), (173, 2)], [], [(0, 1), (2, 2), (3, 1), (11, 2), (14, 2), (16, 1), (19, 2), (34, 1), (58, 2), (137, 1), (172, 2), (173, 1)], [], [], [(2, 2), (3, 1), (7, 2), (11, 2), (12, 1), (15, 1), (16, 1), (19, 2), (34, 2), (58, 2), (137, 1), (172, 2), (173, 1)], [(0, 2), (2, 1), (3, 2), (4, 2), (11, 1), (21, 1), (58, 1), (137, 2), (172, 1), (173, 2)], [], [], [(0, 1), (2, 1), (3, 1), (7, 1), (11, 1), (12, 2), (14, 1), (15, 2), (16, 2), (18, 1), (34, 1), (58, 1), (66, 1), (72, 2), (137, 2)], [], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 1), (11, 2), (14, 2), (15, 2), (16, 1), (18, 2), (58, 2), (66, 2), (67, 1), (72, 1), (137, 1)], [(2, 2), (3, 1), (6, 1), (7, 1), (11, 1), (12, 1), (14, 1), (15, 2), (16, 2), (18, 1), (34, 1), (58, 1), (137, 2)], [], [(1, 1), (3, 1), (11, 2), (14, 2), (15, 2), (16, 1), (18, 2), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (117, 1), (137, 1)], [(0, 1), (2, 1), (3, 2), (7, 1), (11, 1), (12, 1), (14, 1), (15, 2), (16, 2), (18, 1), (34, 1), (115, 1), (137, 2)], [], [], [(0, 1), (1, 1), (2, 1), (3, 1), (7, 2), (11, 2), (12, 1), (14, 2), (15, 1), (16, 1), (18, 2), (19, 1), (20, 2), (34, 1), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (137, 1), (236, 1)], [(0, 2), (2, 1), (3, 2), (4, 2), (11, 1), (18, 1), (58, 1), (137, 2), (173, 2), (181, 1)], [], [(0, 1), (2, 2), (3, 2), (6, 2), (7, 1), (11, 2), (14, 2), (15, 2), (16, 1), (19, 2), (34, 1), (58, 2), (66, 2), (72, 1), (137, 1)], [(1, 1), (2, 1), (3, 1), (6, 1), (11, 1), (12, 2), (14, 1), (15, 2), (16, 2), (19, 1), (34, 1), (58, 1), (66, 1), (72, 2), (137, 2)], [], [(0, 1), (3, 2), (7, 1), (11, 1), (12, 2), (14, 1), (15, 2), (16, 2), (19, 1), (34, 1), (58, 1), (66, 1), (72, 2), (137, 2)], [], [], [(0, 2), (3, 1), (11, 2), (15, 1), (17, 1), (19, 2), (34, 2), (58, 2), (66, 2), (72, 1), (137, 1)], [(0, 2), (1, 1), (3, 2), (4, 2), (7, 2), (11, 1), (12, 1), (22, 1), (58, 1), (66, 1), (72, 2), (137, 2)], [(0, 1), (2, 2), (3, 1), (6, 2), (7, 1), (11, 2), (14, 2), (15, 2), (16, 1), (19, 2), (34, 1), (58, 2), (72, 1), (137, 1)], [(0, 1), (3, 2), (6, 1), (11, 1), (12, 2), (14, 1), (15, 2), (16, 2), (19, 1), (34, 1), (58, 1), (65, 1), (66, 1), (67, 2), (72, 2), (137, 2)], [], [], [(0, 2), (1, 1), (3, 1), (6, 2), (11, 2), (12, 1), (14, 2), (16, 1), (19, 2), (34, 2), (58, 2), (60, 2), (66, 2), (67, 1), (71, 1), (72, 1), (137, 1)], [(0, 2), (1, 1), (2, 1), (3, 2), (4, 2), (6, 1), (7, 2), (11, 1), (80, 1), (137, 2)], [], [(0, 2), (1, 1), (3, 1), (6, 2), (11, 2), (12, 1), (14, 2), (16, 1), (19, 2), (34, 2), (58, 2), (60, 2), (66, 2), (67, 1), (72, 1), (127, 1), (137, 1)], [], [], [], [], [], [], [(0, 1), (2, 2), (3, 2), (6, 1), (7, 2), (15, 1), (18, 2), (19, 1), (34, 2), (66, 2), (72, 1), (172, 2), (173, 1), (392, 1)], [(0, 1), (3, 2), (6, 1), (12, 2), (14, 2), (18, 1), (19, 2), (66, 1), (72, 2), (172, 1), (173, 1), (216, 1)], [], [], [], [], [], [(0, 1), (2, 1), (3, 2), (7, 2), (12, 1), (14, 1), (15, 2), (16, 2), (34, 1), (172, 1), (173, 2), (293, 1)], [], [], [], [], [(0, 1), (2, 1), (3, 2), (7, 2), (12, 1), (13, 1), (15, 1), (18, 1), (19, 2), (34, 2)], [], [], [], [], [(0, 1), (2, 1), (3, 2), (7, 2), (12, 1), (14, 1), (15, 2), (16, 2), (34, 1), (65, 2), (67, 1), (68, 1)], [], [], [], [(0, 1), (2, 1), (3, 2), (6, 1), (7, 1), (11, 1), (12, 1), (14, 1), (15, 2), (16, 2), (34, 1)], [], [], [(0, 2), (1, 2), (4, 1), (7, 2), (12, 1), (14, 1), (15, 2), (16, 2), (34, 1)], [], [], [], []] + +def comb103 : List (List (Nat × Nat)) := [[], [], [], [], [(2, 2), (3, 1), (4, 2), (5, 1), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 1), (25, 2), (34, 1), (63, 2), (64, 2), (137, 2), (234, 1)], [], [], [], [(8, 1), (10, 1), (11, 2), (12, 2), (14, 1), (17, 1), (63, 1), (64, 1), (137, 1), (233, 1), (234, 2)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 2), (34, 1), (63, 2), (64, 2), (137, 2), (233, 2), (234, 1)], [], [(8, 1), (10, 1), (11, 2), (12, 1), (14, 1), (17, 1), (34, 1), (63, 1), (64, 1), (65, 2), (77, 1), (137, 1), (233, 1), (234, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 1), (25, 2), (34, 1), (64, 2), (137, 2), (233, 2), (234, 1)], [], [(2, 2), (8, 1), (10, 1), (11, 2), (12, 2), (14, 1), (15, 2), (17, 1), (20, 1), (34, 1), (63, 1), (64, 1), (137, 1), (233, 1), (234, 2)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (8, 1), (9, 1), (10, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 1), (25, 2), (34, 1), (63, 2), (64, 2), (137, 2), (233, 2), (234, 1)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 2), (10, 1), (11, 2), (12, 1), (15, 1), (16, 2), (17, 2), (24, 2), (25, 1), (34, 2), (63, 1), (64, 1), (137, 1), (233, 1), (234, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 2), (9, 2), (10, 2), (11, 1), (24, 2), (25, 1), (63, 2), (64, 2), (137, 2), (233, 2), (234, 1)], [], [], [], [(2, 2), (3, 2), (4, 1), (5, 2), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (24, 2), (25, 1), (64, 2), (137, 1), (233, 2), (234, 1)], [], [(8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (34, 1), (64, 1), (137, 2), (233, 1), (234, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (24, 2), (25, 1), (34, 1), (60, 1), (64, 2), (65, 2), (137, 1), (233, 2), (234, 1)], [], [], [], [(4, 1), (5, 2), (8, 2), (10, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (64, 1), (137, 2), (233, 1), (234, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (9, 1), (10, 2), (11, 2), (12, 2), (17, 1), (24, 2), (25, 1), (34, 1), (64, 2), (137, 1), (233, 2), (234, 1)], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (64, 1), (137, 2), (233, 1), (234, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (8, 2), (10, 2), (11, 2), (12, 2), (14, 2), (15, 1), (16, 2), (17, 2), (24, 1), (25, 2), (34, 2), (64, 2), (137, 1), (233, 2), (234, 1)], [], [(2, 2), (3, 1), (4, 2), (9, 1), (10, 1), (11, 1), (21, 1), (64, 1), (137, 2), (233, 1), (234, 2)], [], [], [], [(8, 1), (9, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (34, 1), (63, 1), (137, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (11, 2), (15, 2), (16, 1), (24, 2), (25, 1), (63, 2), (65, 1), (137, 1)], [], [(8, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (34, 1), (64, 1), (137, 2)], [(2, 1), (3, 2), (4, 1), (5, 2), (11, 2), (15, 2), (16, 1), (24, 2), (25, 1), (60, 2), (63, 2), (65, 1), (117, 1), (137, 1)], [], [(2, 1), (3, 2), (8, 1), (9, 2), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (34, 1), (120, 1), (137, 2)], [(3, 1), (4, 2), (5, 1), (8, 2), (9, 2), (11, 2), (12, 2), (14, 2), (15, 1), (17, 1), (20, 2), (24, 1), (25, 2), (34, 1), (60, 2), (63, 2), (65, 1), (137, 1), (174, 1)], [], [(2, 2), (3, 1), (4, 1), (5, 1), (11, 1), (24, 1), (25, 2), (137, 2), (181, 1)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (11, 2), (15, 2), (16, 1), (24, 2), (25, 1), (34, 1), (63, 2), (137, 1)], [], [(8, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (63, 1), (137, 2)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (9, 1), (10, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (63, 1), (137, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (8, 2), (9, 2), (11, 2), (12, 2), (14, 2), (15, 1), (17, 1), (24, 1), (25, 2), (34, 2), (63, 2), (137, 1)], [], [(2, 2), (3, 1), (4, 2), (9, 2), (11, 1), (22, 1), (63, 1), (137, 2)], [(3, 2), (4, 1), (5, 2), (11, 2), (15, 2), (16, 1), (24, 2), (25, 1), (34, 1), (64, 2), (66, 1), (137, 1)], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (63, 1), (65, 2), (67, 1), (137, 2)], [(2, 2), (3, 1), (4, 2), (5, 1), (8, 1), (11, 2), (12, 2), (14, 2), (15, 1), (16, 2), (17, 1), (24, 1), (25, 2), (34, 2), (64, 2), (73, 1), (137, 1)], [], [(2, 2), (3, 1), (4, 2), (8, 1), (9, 2), (11, 1), (80, 1), (137, 2)], [(2, 1), (3, 2), (4, 2), (5, 1), (8, 2), (9, 2), (11, 2), (12, 2), (14, 2), (15, 1), (16, 2), (17, 1), (24, 1), (25, 2), (34, 2), (120, 2), (130, 1), (137, 1)], [], [], [], [], [], [], [], [(2, 2), (3, 1), (8, 1), (9, 1), (10, 2), (12, 2), (14, 2), (15, 1), (16, 2), (17, 1), (34, 2), (63, 2), (64, 2), (120, 2), (233, 2), (234, 1), (392, 1)], [], [(2, 2), (3, 1), (4, 2), (5, 1), (8, 1), (9, 2), (10, 2), (12, 2), (14, 1), (24, 1), (25, 2), (63, 1), (64, 2), (233, 1), (234, 1), (274, 1)], [], [], [], [], [(2, 1), (3, 2), (4, 2), (5, 1), (8, 1), (9, 1), (10, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (64, 1), (120, 2), (233, 1), (234, 2), (293, 1)], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (9, 2), (12, 2), (13, 1), (14, 2), (15, 1), (16, 2), (17, 1), (24, 2), (25, 1), (34, 2)], [], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 1), (9, 2), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1), (63, 1), (64, 2), (68, 1)], [], [], [], [(2, 1), (3, 2), (4, 1), (5, 2), (8, 2), (9, 1), (11, 1), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1)], [], [], [(2, 2), (3, 1), (4, 2), (5, 2), (8, 1), (9, 2), (12, 2), (15, 2), (16, 1), (17, 1), (24, 2), (25, 1), (34, 1)], [], [], [], []] + +def combData : List (List (List (Nat × Nat))) := [comb0, comb1, comb2, comb3, comb4, comb5, comb6, comb7, comb8, comb9, comb10, comb11, comb12, comb13, comb14, comb15, comb16, comb17, comb18, comb19, comb20, comb21, comb22, comb23, comb24, comb25, comb26, comb27, comb28, comb29, comb30, comb31, comb32, comb33, comb34, comb35, comb36, comb37, comb38, comb39, comb40, comb41, comb42, comb43, comb44, comb45, comb46, comb47, comb48, comb49, comb50, comb51, comb52, comb53, comb54, comb55, comb56, comb57, comb58, comb59, comb60, comb61, comb62, comb63, comb64, comb65, comb66, comb67, comb68, comb69, comb70, comb71, comb72, comb73, comb74, comb75, comb76, comb77, comb78, comb79, comb80, comb81, comb82, comb83, comb84, comb85, comb86, comb87, comb88, comb89, comb90, comb91, comb92, comb93, comb94, comb95, comb96, comb97, comb98, comb99, comb100, comb101, comb102, comb103] + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_0.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_0.lean new file mode 100644 index 0000000000..5d798eb0bf --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_0.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 0 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_0 : step3OK 0 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_1.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_1.lean new file mode 100644 index 0000000000..e9fe3e324e --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_1.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 1 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_1 : step3OK 1 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_2.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_2.lean new file mode 100644 index 0000000000..fe5c7d81db --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_2.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 2 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_2 : step3OK 2 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_3.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_3.lean new file mode 100644 index 0000000000..e203211923 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_3.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 3 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_3 : step3OK 3 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_4.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_4.lean new file mode 100644 index 0000000000..0aa8dc46f0 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_4.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 4 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_4 : step3OK 4 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_5.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_5.lean new file mode 100644 index 0000000000..6fadb1ffb0 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_5.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 5 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_5 : step3OK 5 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_6.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_6.lean new file mode 100644 index 0000000000..8e0cc36494 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_6.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 6 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_6 : step3OK 6 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_7.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_7.lean new file mode 100644 index 0000000000..710454fff0 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check3_7.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the step-3 certificates for the ports t with t / 13 = 7 (generated). -/ + +namespace CarrierCode.E8 + +theorem step3OK_7 : step3OK 7 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check4.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check4.lean new file mode 100644 index 0000000000..651ff11a83 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check4.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs4 + +/-! Kernel check of the step-4 data (A2 triangles and inverse matrices). -/ + +namespace CarrierCode.E8 + +theorem step4OK_true : step4OK := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check5.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check5.lean new file mode 100644 index 0000000000..8f7c589cdd --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Check5.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs5 + +/-! Kernel check of the step-5 (signs) data. -/ + +namespace CarrierCode.E8 + +theorem check5_true : check5 := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8CheckFrames.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8CheckFrames.lean new file mode 100644 index 0000000000..11923fcc13 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8CheckFrames.lean @@ -0,0 +1,9 @@ +import CarrierCode.E8Defs + +/-! Kernel check of the 759 frames. -/ + +namespace CarrierCode.E8 + +theorem framesOK_true : framesOK := by decide +kernel + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Checks.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Checks.lean new file mode 100644 index 0000000000..4bc823c92a --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Checks.lean @@ -0,0 +1,38 @@ +import CarrierCode.E8CheckFrames +import CarrierCode.E8Check3_0 +import CarrierCode.E8Check3_1 +import CarrierCode.E8Check3_2 +import CarrierCode.E8Check3_3 +import CarrierCode.E8Check3_4 +import CarrierCode.E8Check3_5 +import CarrierCode.E8Check3_6 +import CarrierCode.E8Check3_7 +import CarrierCode.E8Step3 + +/-! All kernel checks of steps 1–3 combined, and step 3 for every decoding matrix. -/ + +namespace CarrierCode.E8 + +open Matrix + +theorem step3_checks : ∀ t : ι, seedOK t.val ∧ ∀ x : ι, check3 t.val x.val := by + intro t + have ht := t.isLt + rcases (show t.val / 13 = 0 ∨ t.val / 13 = 1 ∨ t.val / 13 = 2 ∨ t.val / 13 = 3 ∨ t.val / 13 = 4 ∨ + t.val / 13 = 5 ∨ t.val / 13 = 6 ∨ t.val / 13 = 7 by omega) with h | h | h | h | h | h | h | h + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_0 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_1 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_2 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_3 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_4 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_5 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_6 t h) + · exact (fun ⟨a, b⟩ => ⟨a, fun x => b x⟩) (step3OK_7 t h) + +/-- Step 3 for every matrix satisfying the decoding hypotheses: `N t x = 1 + (r_t·r_x)(r_x·v_t)`. -/ +theorem step3_all {M : Matrix ι ι (ZMod 3)} {A : Matrix ι (Fin 8) (ZMod 3)} {B : Matrix (Fin 8) ι (ZMod 3)} + (h : Hyp M A B) (t x : ι) (hnz : dotN t x % 3 ≠ 0) : + Nm M t x = 1 + Gm t x * (r x ⬝ᵥ vv M t) := + step3 h framesOK_true step3_checks t x hnz + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data.lean new file mode 100644 index 0000000000..4a650daddb --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data.lean @@ -0,0 +1,873 @@ +/-! Generated by Matarener/Internal local-topology-2026-10-27/e8hand/gen_lean_data.py. Roots of the 104 ports +mod 3 in D8 coordinates (order of ports.json) and the 759 frames of pairwise orthogonal ports. -/ + +namespace CarrierCode.E8 + +def rootData : List (List Nat) := [ + [1, 1, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 1, 0, 0, 0, 0], + [2, 2, 1, 2, 2, 1, 1, 2], + [1, 0, 0, 0, 1, 0, 0, 0], + [2, 2, 1, 2, 2, 2, 1, 1], + [0, 1, 1, 0, 0, 0, 0, 0], + [0, 0, 1, 1, 0, 0, 0, 0], + [1, 2, 2, 2, 2, 1, 1, 2], + [1, 2, 2, 2, 2, 1, 2, 1], + [0, 0, 1, 0, 1, 0, 0, 0], + [1, 2, 2, 2, 2, 2, 1, 1], + [0, 1, 0, 0, 0, 0, 0, 1], + [0, 1, 0, 0, 0, 0, 1, 0], + [0, 1, 0, 0, 0, 1, 0, 0], + [0, 0, 0, 1, 0, 0, 0, 1], + [0, 0, 0, 1, 0, 0, 1, 0], + [2, 1, 2, 2, 2, 2, 2, 2], + [0, 0, 0, 1, 0, 1, 0, 0], + [0, 0, 0, 0, 1, 0, 0, 1], + [0, 0, 0, 0, 1, 0, 1, 0], + [1, 2, 1, 2, 2, 2, 2, 1], + [0, 0, 0, 0, 1, 1, 0, 0], + [2, 2, 2, 1, 1, 1, 1, 1], + [2, 1, 2, 2, 1, 1, 1, 1], + [0, 0, 0, 0, 0, 2, 2, 0], + [0, 0, 0, 0, 0, 2, 0, 2], + [2, 1, 2, 1, 2, 1, 1, 1], + [0, 0, 0, 0, 0, 0, 2, 2], + [1, 0, 0, 0, 2, 0, 0, 0], + [2, 2, 1, 1, 1, 1, 2, 1], + [1, 0, 0, 2, 0, 0, 0, 0], + [2, 1, 1, 2, 1, 1, 1, 2], + [1, 2, 0, 0, 0, 0, 0, 0], + [2, 1, 1, 2, 1, 2, 1, 1], + [0, 0, 2, 0, 0, 2, 0, 0], + [0, 0, 2, 0, 0, 0, 2, 0], + [2, 1, 1, 1, 2, 1, 2, 1], + [0, 0, 2, 0, 0, 0, 0, 2], + [2, 1, 1, 1, 2, 2, 1, 1], + [0, 0, 1, 0, 2, 0, 0, 0], + [1, 2, 2, 1, 1, 1, 1, 2], + [0, 0, 1, 2, 0, 0, 0, 0], + [1, 2, 2, 1, 1, 2, 1, 1], + [1, 1, 2, 2, 1, 1, 2, 1], + [0, 2, 1, 0, 0, 0, 0, 0], + [1, 1, 2, 2, 1, 2, 1, 1], + [2, 0, 0, 0, 0, 2, 0, 0], + [1, 1, 2, 1, 2, 1, 1, 2], + [2, 0, 0, 0, 0, 0, 2, 0], + [1, 1, 2, 1, 2, 1, 2, 1], + [2, 0, 0, 0, 0, 0, 0, 2], + [1, 1, 2, 1, 2, 2, 1, 1], + [0, 0, 0, 0, 2, 0, 0, 1], + [0, 0, 0, 0, 2, 0, 1, 0], + [2, 1, 2, 1, 1, 2, 2, 2], + [0, 0, 0, 0, 2, 1, 0, 0], + [0, 0, 0, 2, 0, 0, 0, 1], + [1, 2, 1, 1, 1, 2, 1, 2], + [0, 0, 0, 2, 0, 0, 1, 0], + [1, 2, 1, 1, 1, 2, 2, 1], + [0, 0, 0, 2, 0, 1, 0, 0], + [1, 1, 1, 2, 1, 1, 2, 2], + [0, 2, 0, 0, 0, 0, 0, 1], + [1, 1, 1, 2, 1, 2, 1, 2], + [0, 2, 0, 0, 0, 0, 1, 0], + [1, 1, 1, 2, 1, 2, 2, 1], + [0, 2, 0, 0, 0, 1, 0, 0], + [1, 1, 1, 1, 2, 1, 2, 2], + [2, 0, 2, 0, 0, 0, 0, 0], + [1, 1, 1, 1, 2, 2, 1, 2], + [1, 2, 2, 2, 2, 2, 2, 2], + [2, 2, 1, 2, 2, 2, 2, 2], + [0, 0, 0, 1, 1, 0, 0, 0], + [0, 1, 0, 0, 1, 0, 0, 0], + [2, 2, 2, 2, 2, 2, 2, 1], + [2, 2, 2, 2, 2, 2, 1, 2], + [0, 1, 0, 1, 0, 0, 0, 0], + [2, 2, 2, 2, 2, 1, 2, 2], + [1, 0, 2, 0, 0, 0, 0, 0], + [2, 1, 1, 2, 2, 1, 1, 1], + [2, 2, 1, 1, 2, 1, 1, 1], + [1, 0, 0, 0, 0, 0, 0, 2], + [1, 0, 0, 0, 0, 0, 2, 0], + [2, 2, 1, 2, 1, 1, 1, 1], + [1, 0, 0, 0, 0, 2, 0, 0], + [1, 1, 2, 2, 2, 1, 1, 1], + [0, 0, 1, 0, 0, 0, 0, 2], + [0, 0, 1, 0, 0, 0, 2, 0], + [1, 2, 2, 2, 1, 1, 1, 1], + [0, 0, 1, 0, 0, 2, 0, 0], + [0, 1, 0, 2, 0, 0, 0, 0], + [2, 2, 2, 1, 1, 2, 2, 1], + [2, 2, 2, 1, 1, 2, 1, 2], + [0, 1, 0, 0, 2, 0, 0, 0], + [2, 2, 2, 1, 1, 1, 2, 2], + [2, 1, 2, 2, 1, 2, 2, 1], + [2, 1, 2, 2, 1, 2, 1, 2], + [0, 0, 0, 1, 2, 0, 0, 0], + [2, 1, 2, 2, 1, 1, 2, 2], + [0, 0, 0, 0, 0, 0, 2, 1], + [1, 2, 1, 2, 1, 1, 1, 2], + [0, 0, 0, 0, 0, 2, 0, 1], + [1, 2, 1, 2, 1, 1, 2, 1], + [0, 0, 0, 0, 0, 2, 1, 0]] + +def frameData : List (List Nat) := [ + [0, 6, 18, 24, 32, 41, 52, 103], + [0, 6, 18, 26, 31, 40, 54, 103], + [0, 6, 19, 25, 32, 41, 53, 101], + [0, 6, 20, 25, 33, 42, 53, 100], + [0, 6, 21, 26, 33, 42, 54, 99], + [0, 6, 21, 27, 32, 41, 55, 99], + [0, 7, 16, 20, 79, 86, 97, 103], + [0, 7, 16, 26, 31, 39, 56, 103], + [0, 7, 17, 19, 79, 86, 98, 102], + [0, 7, 17, 23, 35, 42, 52, 102], + [0, 7, 17, 27, 31, 39, 57, 102], + [0, 7, 21, 26, 35, 42, 56, 96], + [0, 8, 16, 23, 36, 41, 53, 101], + [0, 8, 17, 18, 79, 87, 98, 100], + [0, 8, 17, 23, 37, 42, 53, 100], + [0, 8, 18, 26, 34, 40, 58, 98], + [0, 8, 21, 26, 37, 42, 58, 95], + [0, 8, 21, 27, 36, 41, 59, 95], + [0, 9, 14, 20, 79, 88, 95, 103], + [0, 9, 14, 24, 32, 39, 56, 103], + [0, 9, 15, 25, 32, 39, 58, 101], + [0, 9, 17, 23, 38, 42, 54, 99], + [0, 9, 17, 27, 32, 39, 60, 99], + [0, 9, 20, 25, 38, 42, 58, 95], + [0, 10, 14, 19, 79, 89, 95, 102], + [0, 10, 14, 23, 35, 40, 55, 102], + [0, 10, 14, 24, 33, 39, 57, 102], + [0, 10, 15, 18, 79, 89, 96, 100], + [0, 10, 15, 25, 33, 39, 59, 100], + [0, 10, 16, 23, 38, 41, 55, 99], + [0, 10, 16, 26, 33, 39, 60, 99], + [0, 10, 18, 24, 38, 41, 57, 96], + [0, 10, 18, 26, 35, 40, 60, 96], + [0, 10, 19, 25, 38, 41, 59, 95], + [0, 14, 19, 32, 34, 53, 56, 89], + [0, 14, 20, 33, 34, 53, 57, 88], + [0, 14, 21, 32, 35, 55, 56, 87], + [0, 15, 18, 32, 34, 52, 58, 89], + [0, 15, 21, 32, 37, 55, 58, 86], + [0, 15, 21, 33, 36, 54, 59, 86], + [0, 16, 20, 33, 36, 53, 60, 86], + [0, 17, 18, 31, 38, 54, 57, 87], + [0, 17, 18, 32, 35, 52, 60, 87], + [0, 17, 19, 32, 37, 53, 60, 86], + [0, 24, 32, 37, 72, 86, 97, 103], + [0, 24, 33, 36, 72, 86, 98, 102], + [0, 25, 32, 35, 72, 87, 97, 101], + [0, 26, 31, 37, 72, 88, 95, 103], + [0, 26, 33, 34, 72, 88, 98, 99], + [0, 27, 31, 36, 72, 89, 95, 102], + [0, 27, 32, 34, 72, 89, 97, 99], + [0, 40, 54, 59, 70, 86, 97, 103], + [0, 40, 55, 58, 70, 86, 98, 102], + [0, 41, 52, 59, 70, 88, 95, 103], + [0, 41, 53, 57, 70, 88, 96, 101], + [0, 42, 52, 58, 70, 89, 95, 102], + [0, 42, 53, 56, 70, 89, 96, 100], + [1, 5, 18, 20, 80, 85, 100, 103], + [1, 5, 18, 24, 30, 44, 52, 103], + [1, 5, 19, 25, 30, 44, 53, 101], + [1, 5, 19, 26, 29, 43, 54, 101], + [1, 5, 20, 27, 29, 43, 55, 100], + [1, 5, 21, 27, 30, 44, 55, 99], + [1, 7, 13, 19, 80, 86, 94, 102], + [1, 7, 13, 22, 35, 45, 52, 102], + [1, 7, 19, 26, 34, 43, 62, 94], + [1, 7, 20, 25, 35, 45, 61, 93], + [1, 7, 20, 27, 34, 43, 63, 93], + [1, 7, 21, 26, 35, 45, 62, 92], + [1, 8, 13, 18, 80, 87, 94, 100], + [1, 8, 13, 22, 37, 45, 53, 100], + [1, 8, 13, 27, 29, 39, 65, 100], + [1, 8, 18, 24, 36, 44, 61, 94], + [1, 8, 21, 26, 37, 45, 64, 91], + [1, 8, 21, 27, 36, 44, 65, 91], + [1, 9, 11, 20, 80, 88, 91, 103], + [1, 9, 11, 24, 30, 39, 62, 103], + [1, 9, 12, 22, 36, 43, 54, 101], + [1, 9, 12, 25, 30, 39, 64, 101], + [1, 9, 13, 22, 38, 45, 54, 99], + [1, 9, 13, 27, 30, 39, 66, 99], + [1, 9, 20, 25, 38, 45, 64, 91], + [1, 9, 20, 27, 36, 43, 66, 91], + [1, 10, 11, 19, 80, 89, 91, 102], + [1, 10, 12, 18, 80, 89, 92, 100], + [1, 10, 12, 22, 37, 43, 55, 100], + [1, 10, 18, 24, 38, 44, 63, 92], + [1, 10, 19, 25, 38, 44, 65, 91], + [1, 10, 19, 26, 37, 43, 66, 91], + [1, 11, 19, 30, 34, 53, 62, 89], + [1, 11, 20, 29, 35, 55, 61, 88], + [1, 11, 21, 30, 35, 55, 62, 87], + [1, 12, 18, 30, 34, 52, 64, 89], + [1, 12, 21, 30, 37, 55, 64, 86], + [1, 13, 18, 30, 35, 52, 66, 87], + [1, 13, 19, 29, 38, 54, 65, 86], + [1, 13, 19, 30, 37, 53, 66, 86], + [1, 18, 20, 34, 38, 63, 64, 85], + [1, 18, 20, 35, 36, 61, 66, 85], + [1, 22, 35, 36, 73, 85, 101, 102], + [1, 24, 30, 37, 73, 86, 93, 103], + [1, 25, 30, 35, 73, 87, 93, 101], + [1, 26, 29, 35, 73, 88, 92, 101], + [1, 27, 30, 34, 73, 89, 93, 99], + [1, 39, 62, 65, 70, 85, 100, 103], + [1, 39, 63, 64, 70, 85, 101, 102], + [1, 43, 54, 63, 70, 87, 93, 101], + [1, 43, 55, 62, 70, 87, 94, 100], + [1, 44, 52, 65, 70, 88, 91, 103], + [1, 44, 53, 63, 70, 88, 92, 101], + [1, 44, 55, 61, 70, 88, 94, 99], + [1, 45, 52, 64, 70, 89, 91, 102], + [1, 45, 53, 62, 70, 89, 92, 100], + [1, 45, 54, 61, 70, 89, 93, 99], + [2, 5, 16, 20, 81, 85, 97, 103], + [2, 5, 16, 23, 30, 47, 52, 103], + [2, 5, 17, 19, 81, 85, 98, 102], + [2, 5, 19, 26, 29, 46, 56, 98], + [2, 5, 20, 27, 29, 46, 57, 97], + [2, 5, 21, 27, 30, 47, 57, 96], + [2, 6, 13, 22, 33, 48, 52, 102], + [2, 6, 13, 27, 28, 40, 63, 102], + [2, 6, 19, 25, 32, 47, 61, 94], + [2, 6, 20, 25, 33, 48, 61, 93], + [2, 6, 21, 26, 33, 48, 62, 92], + [2, 6, 21, 27, 32, 47, 63, 92], + [2, 8, 13, 16, 81, 87, 94, 97], + [2, 8, 13, 27, 29, 40, 68, 97], + [2, 8, 16, 23, 36, 47, 61, 94], + [2, 8, 17, 23, 37, 48, 61, 93], + [2, 8, 21, 26, 37, 48, 67, 90], + [2, 8, 21, 27, 36, 47, 68, 90], + [2, 9, 12, 17, 81, 88, 92, 98], + [2, 9, 12, 22, 36, 46, 56, 98], + [2, 9, 12, 25, 30, 40, 67, 98], + [2, 9, 13, 15, 81, 88, 94, 96], + [2, 9, 13, 22, 38, 48, 56, 96], + [2, 9, 13, 27, 30, 40, 69, 96], + [2, 9, 15, 23, 36, 46, 62, 94], + [2, 9, 17, 23, 38, 48, 62, 92], + [2, 9, 20, 25, 38, 48, 67, 90], + [2, 9, 20, 27, 36, 46, 69, 90], + [2, 10, 12, 16, 81, 89, 92, 97], + [2, 10, 12, 22, 37, 46, 57, 97], + [2, 10, 15, 23, 37, 46, 63, 93], + [2, 10, 16, 23, 38, 47, 63, 92], + [2, 10, 19, 25, 38, 47, 68, 90], + [2, 10, 19, 26, 37, 46, 69, 90], + [2, 12, 16, 28, 36, 56, 61, 89], + [2, 12, 17, 28, 37, 57, 61, 88], + [2, 13, 15, 29, 33, 52, 68, 88], + [2, 13, 16, 28, 38, 56, 63, 87], + [2, 13, 16, 30, 33, 52, 69, 87], + [2, 15, 21, 32, 37, 63, 67, 85], + [2, 15, 21, 33, 36, 62, 68, 85], + [2, 16, 20, 33, 36, 61, 69, 85], + [2, 17, 19, 32, 37, 61, 69, 85], + [2, 22, 32, 37, 74, 85, 97, 103], + [2, 22, 33, 36, 74, 85, 98, 102], + [2, 25, 30, 33, 74, 87, 93, 98], + [2, 26, 28, 37, 74, 88, 90, 103], + [2, 26, 29, 33, 74, 88, 92, 98], + [2, 27, 28, 36, 74, 89, 90, 102], + [2, 27, 29, 32, 74, 89, 92, 97], + [2, 40, 62, 68, 70, 85, 97, 103], + [2, 40, 63, 67, 70, 85, 98, 102], + [2, 46, 56, 63, 70, 87, 93, 98], + [2, 46, 57, 62, 70, 87, 94, 97], + [2, 47, 52, 68, 70, 88, 90, 103], + [2, 47, 57, 61, 70, 88, 94, 96], + [2, 48, 52, 67, 70, 89, 90, 102], + [2, 48, 56, 61, 70, 89, 93, 96], + [3, 5, 14, 20, 83, 85, 95, 103], + [3, 5, 14, 24, 28, 44, 56, 103], + [3, 5, 15, 23, 29, 49, 54, 101], + [3, 5, 15, 25, 28, 44, 58, 101], + [3, 5, 17, 27, 28, 44, 60, 99], + [3, 5, 20, 27, 29, 49, 60, 95], + [3, 6, 11, 22, 31, 47, 54, 103], + [3, 6, 11, 24, 28, 41, 62, 103], + [3, 6, 12, 25, 28, 41, 64, 101], + [3, 6, 13, 22, 33, 51, 54, 99], + [3, 6, 13, 27, 28, 41, 66, 99], + [3, 6, 20, 25, 33, 51, 64, 91], + [3, 7, 12, 17, 83, 86, 92, 98], + [3, 7, 12, 22, 34, 49, 56, 98], + [3, 7, 13, 15, 83, 86, 94, 96], + [3, 7, 13, 22, 35, 51, 56, 96], + [3, 7, 15, 23, 34, 49, 62, 94], + [3, 7, 15, 25, 31, 44, 67, 94], + [3, 7, 17, 23, 35, 51, 62, 92], + [3, 7, 17, 27, 31, 44, 69, 92], + [3, 7, 20, 25, 35, 51, 67, 90], + [3, 7, 20, 27, 34, 49, 69, 90], + [3, 8, 11, 17, 83, 87, 91, 98], + [3, 8, 11, 22, 34, 47, 58, 98], + [3, 8, 11, 24, 29, 41, 67, 98], + [3, 8, 13, 14, 83, 87, 94, 95], + [3, 8, 13, 22, 37, 51, 58, 95], + [3, 8, 14, 23, 34, 47, 64, 94], + [3, 8, 17, 23, 37, 51, 64, 91], + [3, 10, 11, 15, 83, 89, 91, 96], + [3, 10, 11, 22, 35, 47, 60, 96], + [3, 10, 12, 14, 83, 89, 92, 95], + [3, 10, 12, 22, 37, 49, 60, 95], + [3, 10, 14, 23, 35, 47, 66, 92], + [3, 10, 14, 24, 33, 44, 69, 92], + [3, 10, 15, 23, 37, 49, 66, 91], + [3, 11, 15, 28, 34, 58, 62, 89], + [3, 11, 15, 29, 31, 54, 67, 89], + [3, 11, 17, 28, 35, 60, 62, 87], + [3, 12, 14, 28, 34, 56, 64, 89], + [3, 12, 17, 28, 37, 60, 64, 86], + [3, 13, 14, 28, 35, 56, 66, 87], + [3, 13, 15, 28, 37, 58, 66, 86], + [3, 14, 20, 33, 34, 64, 69, 85], + [3, 22, 31, 37, 76, 85, 95, 103], + [3, 22, 33, 34, 76, 85, 98, 99], + [3, 24, 28, 37, 76, 86, 90, 103], + [3, 24, 29, 33, 76, 86, 92, 98], + [3, 25, 28, 35, 76, 87, 90, 101], + [3, 27, 28, 34, 76, 89, 90, 99], + [3, 27, 29, 31, 76, 89, 92, 95], + [3, 41, 64, 69, 70, 85, 96, 101], + [3, 41, 66, 67, 70, 85, 98, 99], + [3, 47, 58, 66, 70, 86, 92, 98], + [3, 47, 60, 64, 70, 86, 94, 96], + [3, 49, 54, 69, 70, 87, 90, 101], + [3, 49, 56, 66, 70, 87, 91, 98], + [3, 49, 60, 62, 70, 87, 94, 95], + [3, 51, 54, 67, 70, 89, 90, 99], + [3, 51, 56, 64, 70, 89, 91, 96], + [3, 51, 58, 62, 70, 89, 92, 95], + [4, 5, 14, 19, 84, 85, 95, 102], + [4, 5, 14, 24, 28, 45, 57, 102], + [4, 5, 15, 18, 84, 85, 96, 100], + [4, 5, 15, 23, 29, 50, 55, 100], + [4, 5, 15, 25, 28, 45, 59, 100], + [4, 5, 16, 23, 30, 51, 55, 99], + [4, 5, 16, 26, 28, 45, 60, 99], + [4, 5, 18, 24, 30, 51, 57, 96], + [4, 5, 19, 25, 30, 51, 59, 95], + [4, 5, 19, 26, 29, 50, 60, 95], + [4, 6, 11, 22, 31, 48, 55, 102], + [4, 6, 11, 24, 28, 42, 63, 102], + [4, 6, 12, 25, 28, 42, 65, 100], + [4, 6, 18, 24, 32, 51, 63, 92], + [4, 6, 18, 26, 31, 48, 66, 92], + [4, 6, 19, 25, 32, 51, 65, 91], + [4, 7, 12, 16, 84, 86, 92, 97], + [4, 7, 12, 22, 34, 50, 57, 97], + [4, 7, 15, 23, 34, 50, 63, 93], + [4, 7, 15, 25, 31, 45, 68, 93], + [4, 7, 16, 26, 31, 45, 69, 92], + [4, 7, 19, 26, 34, 50, 69, 90], + [4, 8, 11, 16, 84, 87, 91, 97], + [4, 8, 11, 22, 34, 48, 59, 97], + [4, 8, 11, 24, 29, 42, 68, 97], + [4, 8, 14, 23, 34, 48, 65, 93], + [4, 8, 16, 23, 36, 51, 65, 91], + [4, 8, 18, 24, 36, 51, 68, 90], + [4, 9, 11, 15, 84, 88, 91, 96], + [4, 9, 11, 24, 30, 42, 69, 96], + [4, 9, 12, 14, 84, 88, 92, 95], + [4, 9, 12, 22, 36, 50, 60, 95], + [4, 9, 14, 24, 32, 45, 69, 92], + [4, 9, 15, 23, 36, 50, 66, 91], + [4, 11, 15, 28, 34, 59, 63, 88], + [4, 11, 15, 29, 31, 55, 68, 88], + [4, 11, 16, 30, 31, 55, 69, 87], + [4, 12, 14, 28, 34, 57, 65, 88], + [4, 12, 16, 28, 36, 60, 65, 86], + [4, 14, 19, 32, 34, 65, 69, 85], + [4, 15, 18, 31, 36, 66, 68, 85], + [4, 22, 31, 36, 77, 85, 95, 102], + [4, 22, 32, 34, 77, 85, 97, 99], + [4, 24, 28, 36, 77, 86, 90, 102], + [4, 24, 29, 32, 77, 86, 92, 97], + [4, 25, 30, 31, 77, 87, 93, 95], + [4, 26, 28, 34, 77, 88, 90, 99], + [4, 26, 29, 31, 77, 88, 92, 95], + [4, 42, 65, 69, 70, 85, 96, 100], + [4, 42, 66, 68, 70, 85, 97, 99], + [4, 48, 59, 66, 70, 86, 92, 97], + [4, 48, 60, 65, 70, 86, 93, 96], + [4, 50, 55, 69, 70, 87, 90, 100], + [4, 50, 57, 66, 70, 87, 91, 97], + [4, 50, 60, 63, 70, 87, 93, 95], + [4, 51, 55, 68, 70, 88, 90, 99], + [4, 51, 57, 65, 70, 88, 91, 96], + [4, 51, 59, 63, 70, 88, 92, 95], + [5, 14, 19, 44, 46, 53, 56, 84], + [5, 14, 20, 45, 46, 53, 57, 83], + [5, 14, 21, 44, 48, 55, 56, 82], + [5, 14, 21, 45, 47, 54, 57, 82], + [5, 15, 18, 44, 46, 52, 58, 84], + [5, 15, 21, 44, 50, 55, 58, 81], + [5, 15, 21, 45, 49, 54, 59, 81], + [5, 16, 20, 43, 51, 55, 58, 81], + [5, 16, 20, 45, 49, 53, 60, 81], + [5, 17, 18, 44, 48, 52, 60, 82], + [5, 17, 19, 43, 51, 54, 59, 81], + [5, 17, 19, 44, 50, 53, 60, 81], + [5, 18, 20, 46, 51, 57, 58, 80], + [5, 23, 47, 50, 72, 80, 100, 103], + [5, 23, 48, 49, 72, 80, 101, 102], + [5, 24, 44, 50, 72, 81, 97, 103], + [5, 24, 45, 49, 72, 81, 98, 102], + [5, 25, 44, 48, 72, 82, 97, 101], + [5, 25, 45, 47, 72, 82, 98, 100], + [5, 26, 43, 48, 72, 83, 96, 101], + [5, 26, 45, 46, 72, 83, 98, 99], + [5, 27, 43, 47, 72, 84, 96, 100], + [5, 27, 44, 46, 72, 84, 97, 99], + [5, 28, 56, 59, 71, 80, 100, 103], + [5, 28, 57, 58, 71, 80, 101, 102], + [5, 29, 54, 57, 71, 82, 97, 101], + [5, 29, 55, 56, 71, 82, 98, 100], + [5, 30, 52, 59, 71, 83, 95, 103], + [5, 30, 53, 57, 71, 83, 96, 101], + [6, 11, 19, 41, 46, 53, 62, 84], + [6, 11, 20, 42, 46, 53, 63, 83], + [6, 11, 21, 41, 48, 55, 62, 82], + [6, 11, 21, 42, 47, 54, 63, 82], + [6, 12, 18, 40, 49, 54, 61, 84], + [6, 12, 18, 41, 46, 52, 64, 84], + [6, 12, 21, 41, 50, 55, 64, 81], + [6, 12, 21, 42, 49, 54, 65, 81], + [6, 13, 18, 40, 51, 54, 63, 82], + [6, 13, 18, 41, 48, 52, 66, 82], + [6, 13, 19, 41, 50, 53, 66, 81], + [6, 18, 20, 46, 51, 63, 64, 79], + [6, 18, 20, 48, 49, 61, 66, 79], + [6, 22, 47, 50, 73, 79, 100, 103], + [6, 22, 48, 49, 73, 79, 101, 102], + [6, 24, 41, 50, 73, 81, 93, 103], + [6, 24, 42, 49, 73, 81, 94, 102], + [6, 25, 41, 48, 73, 82, 93, 101], + [6, 25, 42, 47, 73, 82, 94, 100], + [6, 26, 40, 50, 73, 83, 91, 103], + [6, 26, 42, 46, 73, 83, 94, 99], + [6, 27, 40, 49, 73, 84, 91, 102], + [6, 27, 41, 46, 73, 84, 93, 99], + [6, 28, 62, 65, 71, 79, 100, 103], + [6, 28, 63, 64, 71, 79, 101, 102], + [6, 31, 54, 65, 71, 81, 93, 103], + [6, 31, 55, 64, 71, 81, 94, 102], + [6, 32, 52, 65, 71, 83, 91, 103], + [6, 32, 53, 63, 71, 83, 92, 101], + [6, 32, 55, 61, 71, 83, 94, 99], + [6, 33, 52, 64, 71, 84, 91, 102], + [6, 33, 53, 62, 71, 84, 92, 100], + [6, 33, 54, 61, 71, 84, 93, 99], + [7, 12, 16, 39, 49, 56, 61, 84], + [7, 12, 16, 41, 43, 52, 67, 84], + [7, 12, 17, 39, 50, 57, 61, 83], + [7, 12, 17, 42, 43, 52, 68, 83], + [7, 12, 21, 41, 50, 57, 67, 80], + [7, 12, 21, 42, 49, 56, 68, 80], + [7, 13, 16, 39, 51, 56, 63, 82], + [7, 13, 16, 41, 45, 52, 69, 82], + [7, 15, 21, 44, 50, 63, 67, 79], + [7, 15, 21, 45, 49, 62, 68, 79], + [7, 16, 20, 43, 51, 63, 67, 79], + [7, 16, 20, 45, 49, 61, 69, 79], + [7, 17, 19, 43, 51, 62, 68, 79], + [7, 17, 19, 44, 50, 61, 69, 79], + [7, 22, 44, 50, 74, 79, 97, 103], + [7, 22, 45, 49, 74, 79, 98, 102], + [7, 23, 41, 50, 74, 80, 93, 103], + [7, 23, 42, 49, 74, 80, 94, 102], + [7, 25, 41, 45, 74, 82, 93, 98], + [7, 25, 42, 44, 74, 82, 94, 97], + [7, 26, 39, 50, 74, 83, 90, 103], + [7, 26, 42, 43, 74, 83, 94, 96], + [7, 27, 39, 49, 74, 84, 90, 102], + [7, 27, 41, 43, 74, 84, 93, 96], + [7, 31, 56, 68, 71, 80, 93, 103], + [7, 31, 57, 67, 71, 80, 94, 102], + [7, 34, 56, 63, 71, 82, 93, 98], + [7, 34, 57, 62, 71, 82, 94, 97], + [7, 35, 52, 67, 71, 84, 90, 102], + [7, 35, 56, 61, 71, 84, 93, 96], + [8, 11, 16, 39, 47, 58, 61, 84], + [8, 11, 17, 39, 48, 59, 61, 83], + [8, 11, 21, 41, 48, 59, 67, 80], + [8, 11, 21, 42, 47, 58, 68, 80], + [8, 13, 14, 40, 45, 53, 68, 83], + [8, 13, 16, 39, 51, 58, 65, 81], + [8, 13, 18, 40, 51, 58, 68, 80], + [8, 14, 21, 44, 48, 65, 67, 79], + [8, 14, 21, 45, 47, 64, 68, 79], + [8, 22, 44, 48, 75, 79, 97, 101], + [8, 22, 45, 47, 75, 79, 98, 100], + [8, 23, 41, 48, 75, 80, 93, 101], + [8, 23, 42, 47, 75, 80, 94, 100], + [8, 24, 41, 45, 75, 81, 93, 98], + [8, 24, 42, 44, 75, 81, 94, 97], + [8, 26, 39, 48, 75, 83, 90, 101], + [8, 26, 40, 45, 75, 83, 91, 98], + [8, 27, 39, 47, 75, 84, 90, 100], + [8, 27, 40, 44, 75, 84, 91, 97], + [8, 29, 64, 68, 71, 79, 97, 101], + [8, 29, 65, 67, 71, 79, 98, 100], + [8, 34, 58, 65, 71, 81, 93, 98], + [8, 34, 59, 64, 71, 81, 94, 97], + [8, 36, 53, 68, 71, 83, 90, 101], + [8, 36, 59, 61, 71, 83, 94, 95], + [8, 37, 53, 67, 71, 84, 90, 100], + [8, 37, 58, 61, 71, 84, 93, 95], + [9, 11, 15, 39, 46, 58, 62, 84], + [9, 11, 17, 39, 48, 60, 62, 82], + [9, 11, 20, 42, 46, 58, 69, 80], + [9, 12, 14, 39, 46, 56, 64, 84], + [9, 12, 14, 40, 43, 54, 67, 84], + [9, 12, 17, 39, 50, 60, 64, 81], + [9, 13, 14, 39, 48, 56, 66, 82], + [9, 13, 14, 40, 45, 54, 69, 82], + [9, 13, 15, 39, 50, 58, 66, 81], + [9, 14, 20, 43, 48, 66, 67, 79], + [9, 14, 20, 45, 46, 64, 69, 79], + [9, 22, 43, 48, 76, 79, 96, 101], + [9, 22, 45, 46, 76, 79, 98, 99], + [9, 23, 40, 50, 76, 80, 91, 103], + [9, 23, 42, 46, 76, 80, 94, 99], + [9, 24, 39, 50, 76, 81, 90, 103], + [9, 24, 42, 43, 76, 81, 94, 96], + [9, 25, 39, 48, 76, 82, 90, 101], + [9, 25, 40, 45, 76, 82, 91, 98], + [9, 27, 39, 46, 76, 84, 90, 99], + [9, 27, 40, 43, 76, 84, 91, 96], + [9, 30, 64, 69, 71, 79, 96, 101], + [9, 30, 66, 67, 71, 79, 98, 99], + [9, 32, 58, 69, 71, 80, 92, 101], + [9, 32, 60, 67, 71, 80, 94, 99], + [9, 36, 54, 69, 71, 82, 90, 101], + [9, 36, 56, 66, 71, 82, 91, 98], + [9, 36, 60, 62, 71, 82, 94, 95], + [9, 38, 54, 67, 71, 84, 90, 99], + [9, 38, 56, 64, 71, 84, 91, 96], + [9, 38, 58, 62, 71, 84, 92, 95], + [10, 11, 15, 39, 46, 59, 63, 83], + [10, 11, 16, 39, 47, 60, 63, 82], + [10, 11, 19, 41, 46, 59, 69, 80], + [10, 12, 14, 39, 46, 57, 65, 83], + [10, 12, 14, 40, 43, 55, 68, 83], + [10, 12, 16, 39, 49, 60, 65, 81], + [10, 12, 18, 40, 49, 60, 68, 80], + [10, 14, 19, 43, 47, 66, 68, 79], + [10, 14, 19, 44, 46, 65, 69, 79], + [10, 22, 43, 47, 77, 79, 96, 100], + [10, 22, 44, 46, 77, 79, 97, 99], + [10, 23, 40, 49, 77, 80, 91, 102], + [10, 23, 41, 46, 77, 80, 93, 99], + [10, 24, 39, 49, 77, 81, 90, 102], + [10, 24, 41, 43, 77, 81, 93, 96], + [10, 25, 39, 47, 77, 82, 90, 100], + [10, 25, 40, 44, 77, 82, 91, 97], + [10, 26, 39, 46, 77, 83, 90, 99], + [10, 26, 40, 43, 77, 83, 91, 96], + [10, 33, 59, 69, 71, 80, 92, 100], + [10, 33, 60, 68, 71, 80, 93, 99], + [10, 35, 59, 66, 71, 81, 92, 97], + [10, 35, 60, 65, 71, 81, 93, 96], + [10, 37, 55, 69, 71, 82, 90, 100], + [10, 37, 57, 66, 71, 82, 91, 97], + [10, 37, 60, 63, 71, 82, 93, 95], + [10, 38, 55, 68, 71, 83, 90, 99], + [10, 38, 57, 65, 71, 83, 91, 96], + [10, 38, 59, 63, 71, 83, 92, 95], + [11, 15, 21, 54, 59, 63, 67, 78], + [11, 15, 21, 55, 58, 62, 68, 78], + [11, 16, 20, 53, 60, 63, 67, 78], + [11, 16, 20, 55, 58, 61, 69, 78], + [11, 17, 19, 53, 60, 62, 68, 78], + [11, 17, 19, 54, 59, 61, 69, 78], + [11, 22, 54, 59, 74, 78, 97, 103], + [11, 22, 55, 58, 74, 78, 98, 102], + [11, 24, 62, 68, 72, 78, 97, 103], + [11, 24, 63, 67, 72, 78, 98, 102], + [11, 28, 41, 59, 74, 80, 88, 103], + [11, 28, 42, 58, 74, 80, 89, 102], + [11, 29, 41, 55, 74, 82, 88, 98], + [11, 29, 42, 54, 74, 82, 89, 97], + [11, 30, 42, 53, 74, 83, 89, 96], + [11, 31, 47, 68, 72, 80, 88, 103], + [11, 31, 48, 67, 72, 80, 89, 102], + [11, 34, 47, 63, 72, 82, 88, 98], + [11, 34, 48, 62, 72, 82, 89, 97], + [11, 35, 46, 62, 72, 84, 87, 97], + [11, 35, 47, 61, 72, 84, 88, 96], + [12, 14, 21, 54, 57, 65, 67, 78], + [12, 14, 21, 55, 56, 64, 68, 78], + [12, 17, 18, 52, 60, 64, 68, 78], + [12, 22, 54, 57, 75, 78, 97, 101], + [12, 22, 55, 56, 75, 78, 98, 100], + [12, 25, 64, 68, 72, 78, 97, 101], + [12, 25, 65, 67, 72, 78, 98, 100], + [12, 28, 41, 57, 75, 80, 88, 101], + [12, 28, 42, 56, 75, 80, 89, 100], + [12, 30, 40, 55, 75, 83, 86, 98], + [12, 30, 42, 52, 75, 83, 89, 95], + [12, 34, 49, 65, 72, 81, 88, 98], + [12, 34, 50, 64, 72, 81, 89, 97], + [12, 36, 46, 65, 72, 83, 86, 98], + [12, 36, 50, 61, 72, 83, 89, 95], + [12, 37, 46, 64, 72, 84, 86, 97], + [12, 37, 49, 61, 72, 84, 88, 95], + [13, 14, 19, 53, 56, 66, 68, 78], + [13, 15, 18, 52, 58, 66, 68, 78], + [13, 22, 52, 58, 77, 78, 95, 102], + [13, 22, 53, 56, 77, 78, 96, 100], + [13, 27, 65, 69, 72, 78, 96, 100], + [13, 27, 66, 68, 72, 78, 97, 99], + [13, 28, 40, 58, 77, 80, 86, 102], + [13, 29, 40, 54, 77, 82, 86, 97], + [13, 29, 41, 52, 77, 82, 88, 95], + [13, 30, 40, 53, 77, 83, 86, 96], + [13, 33, 50, 69, 72, 80, 87, 100], + [13, 33, 51, 68, 72, 80, 88, 99], + [13, 35, 50, 66, 72, 81, 87, 97], + [13, 35, 51, 65, 72, 81, 88, 96], + [13, 37, 48, 66, 72, 82, 86, 97], + [13, 37, 51, 63, 72, 82, 88, 95], + [13, 38, 48, 65, 72, 83, 86, 96], + [13, 38, 50, 63, 72, 83, 87, 95], + [14, 23, 54, 65, 74, 78, 93, 103], + [14, 23, 55, 64, 74, 78, 94, 102], + [14, 24, 56, 68, 73, 78, 93, 103], + [14, 24, 57, 67, 73, 78, 94, 102], + [14, 28, 44, 65, 74, 79, 88, 103], + [14, 28, 45, 64, 74, 79, 89, 102], + [14, 32, 39, 65, 74, 83, 85, 103], + [14, 32, 43, 55, 74, 83, 87, 94], + [14, 32, 45, 53, 74, 83, 89, 92], + [14, 33, 39, 64, 74, 84, 85, 102], + [14, 33, 43, 54, 74, 84, 87, 93], + [14, 33, 44, 53, 74, 84, 88, 92], + [14, 34, 47, 57, 73, 82, 88, 94], + [14, 34, 48, 56, 73, 82, 89, 93], + [14, 35, 40, 67, 73, 84, 85, 102], + [14, 35, 46, 56, 73, 84, 87, 93], + [15, 23, 54, 63, 75, 78, 93, 101], + [15, 23, 55, 62, 75, 78, 94, 100], + [15, 25, 58, 68, 73, 78, 93, 101], + [15, 25, 59, 67, 73, 78, 94, 100], + [15, 28, 44, 63, 75, 79, 88, 101], + [15, 28, 45, 62, 75, 79, 89, 100], + [15, 29, 49, 68, 73, 79, 88, 101], + [15, 29, 50, 67, 73, 79, 89, 100], + [15, 31, 44, 55, 75, 81, 88, 94], + [15, 31, 45, 54, 75, 81, 89, 93], + [15, 32, 39, 63, 75, 83, 85, 101], + [15, 32, 45, 52, 75, 83, 89, 91], + [15, 33, 39, 62, 75, 84, 85, 100], + [15, 33, 44, 52, 75, 84, 88, 91], + [15, 34, 49, 59, 73, 81, 88, 94], + [15, 34, 50, 58, 73, 81, 89, 93], + [15, 36, 46, 59, 73, 83, 86, 94], + [15, 37, 46, 58, 73, 84, 86, 93], + [16, 23, 52, 65, 76, 78, 91, 103], + [16, 23, 53, 63, 76, 78, 92, 101], + [16, 23, 55, 61, 76, 78, 94, 99], + [16, 26, 58, 69, 73, 78, 92, 101], + [16, 26, 60, 67, 73, 78, 94, 99], + [16, 28, 43, 63, 76, 79, 87, 101], + [16, 28, 45, 61, 76, 79, 89, 99], + [16, 30, 49, 69, 73, 79, 87, 101], + [16, 30, 51, 67, 73, 79, 89, 99], + [16, 31, 39, 65, 76, 81, 85, 103], + [16, 31, 43, 55, 76, 81, 87, 94], + [16, 31, 45, 53, 76, 81, 89, 92], + [16, 33, 39, 61, 76, 84, 85, 99], + [16, 33, 43, 52, 76, 84, 87, 91], + [16, 36, 41, 69, 73, 82, 85, 101], + [16, 36, 47, 60, 73, 82, 86, 94], + [16, 36, 51, 56, 73, 82, 89, 91], + [16, 38, 41, 67, 73, 84, 85, 99], + [16, 38, 47, 58, 73, 84, 86, 92], + [16, 38, 49, 56, 73, 84, 87, 91], + [17, 23, 52, 64, 77, 78, 91, 102], + [17, 23, 53, 62, 77, 78, 92, 100], + [17, 23, 54, 61, 77, 78, 93, 99], + [17, 27, 59, 69, 73, 78, 92, 100], + [17, 27, 60, 68, 73, 78, 93, 99], + [17, 28, 43, 62, 77, 79, 87, 100], + [17, 28, 44, 61, 77, 79, 88, 99], + [17, 31, 39, 64, 77, 81, 85, 102], + [17, 31, 43, 54, 77, 81, 87, 93], + [17, 31, 44, 53, 77, 81, 88, 92], + [17, 32, 39, 61, 77, 83, 85, 99], + [17, 32, 43, 52, 77, 83, 87, 91], + [17, 35, 50, 60, 73, 81, 87, 93], + [17, 35, 51, 59, 73, 81, 88, 92], + [17, 37, 42, 69, 73, 82, 85, 100], + [17, 37, 48, 60, 73, 82, 86, 93], + [17, 37, 51, 57, 73, 82, 88, 91], + [17, 38, 42, 68, 73, 83, 85, 99], + [17, 38, 48, 59, 73, 83, 86, 92], + [17, 38, 50, 57, 73, 83, 87, 91], + [18, 24, 52, 68, 76, 78, 90, 103], + [18, 24, 57, 61, 76, 78, 94, 96], + [18, 26, 58, 66, 74, 78, 92, 98], + [18, 26, 60, 64, 74, 78, 94, 96], + [18, 30, 49, 66, 74, 79, 87, 98], + [18, 30, 51, 64, 74, 79, 89, 96], + [18, 31, 40, 68, 76, 80, 85, 103], + [18, 31, 46, 57, 76, 80, 87, 94], + [18, 32, 49, 60, 74, 80, 87, 94], + [18, 32, 51, 58, 74, 80, 89, 92], + [18, 34, 40, 63, 76, 82, 85, 98], + [18, 34, 48, 52, 76, 82, 89, 90], + [18, 35, 40, 61, 76, 84, 85, 96], + [18, 35, 46, 52, 76, 84, 87, 90], + [18, 36, 41, 66, 74, 82, 85, 98], + [18, 36, 51, 54, 74, 82, 89, 90], + [18, 38, 41, 64, 74, 84, 85, 96], + [18, 38, 49, 54, 74, 84, 87, 90], + [19, 25, 53, 68, 76, 78, 90, 101], + [19, 25, 59, 61, 76, 78, 94, 95], + [19, 26, 54, 69, 75, 78, 90, 101], + [19, 26, 56, 66, 75, 78, 91, 98], + [19, 26, 60, 62, 75, 78, 94, 95], + [19, 29, 46, 65, 76, 79, 86, 98], + [19, 29, 50, 61, 76, 79, 89, 95], + [19, 30, 47, 66, 75, 79, 86, 98], + [19, 30, 51, 62, 75, 79, 89, 95], + [19, 32, 41, 69, 75, 80, 85, 101], + [19, 32, 47, 60, 75, 80, 86, 94], + [19, 32, 51, 56, 75, 80, 89, 91], + [19, 34, 50, 53, 76, 81, 89, 90], + [19, 37, 46, 53, 76, 84, 86, 90], + [19, 38, 41, 62, 75, 84, 85, 95], + [19, 38, 47, 54, 75, 84, 86, 90], + [20, 25, 53, 67, 77, 78, 90, 100], + [20, 25, 58, 61, 77, 78, 93, 95], + [20, 27, 55, 69, 75, 78, 90, 100], + [20, 27, 57, 66, 75, 78, 91, 97], + [20, 27, 60, 63, 75, 78, 93, 95], + [20, 29, 46, 64, 77, 79, 86, 97], + [20, 29, 49, 61, 77, 79, 88, 95], + [20, 33, 42, 69, 75, 80, 85, 100], + [20, 33, 48, 60, 75, 80, 86, 93], + [20, 33, 51, 57, 75, 80, 88, 91], + [20, 34, 49, 53, 77, 81, 88, 90], + [20, 35, 42, 66, 75, 81, 85, 97], + [20, 35, 51, 55, 75, 81, 88, 90], + [20, 36, 46, 53, 77, 83, 86, 90], + [20, 38, 42, 63, 75, 83, 85, 95], + [20, 38, 48, 55, 75, 83, 86, 90], + [21, 26, 54, 67, 77, 78, 90, 99], + [21, 26, 56, 64, 77, 78, 91, 96], + [21, 26, 58, 62, 77, 78, 92, 95], + [21, 27, 55, 68, 76, 78, 90, 99], + [21, 27, 57, 65, 76, 78, 91, 96], + [21, 27, 59, 63, 76, 78, 92, 95], + [21, 30, 47, 64, 77, 79, 86, 96], + [21, 30, 49, 62, 77, 79, 87, 95], + [21, 32, 41, 67, 77, 80, 85, 99], + [21, 32, 47, 58, 77, 80, 86, 92], + [21, 32, 49, 56, 77, 80, 87, 91], + [21, 33, 42, 68, 76, 80, 85, 99], + [21, 33, 48, 59, 76, 80, 86, 92], + [21, 33, 50, 57, 76, 80, 87, 91], + [21, 35, 42, 65, 76, 81, 85, 96], + [21, 35, 50, 55, 76, 81, 87, 90], + [21, 36, 41, 62, 77, 82, 85, 95], + [21, 36, 47, 54, 77, 82, 86, 90], + [21, 37, 42, 63, 76, 82, 85, 95], + [21, 37, 48, 55, 76, 82, 86, 90], + [22, 31, 36, 44, 46, 53, 56, 77], + [22, 31, 37, 45, 46, 53, 57, 76], + [22, 31, 38, 44, 48, 55, 56, 75], + [22, 31, 38, 45, 47, 54, 57, 75], + [22, 32, 34, 43, 47, 52, 58, 77], + [22, 32, 35, 45, 47, 52, 60, 75], + [22, 32, 37, 43, 51, 55, 58, 74], + [22, 32, 37, 45, 49, 53, 60, 74], + [22, 33, 34, 43, 48, 52, 59, 76], + [22, 33, 36, 43, 51, 54, 59, 74], + [22, 33, 36, 44, 50, 53, 60, 74], + [22, 34, 38, 47, 50, 57, 58, 73], + [22, 34, 38, 48, 49, 56, 59, 73], + [22, 35, 36, 46, 51, 56, 59, 73], + [23, 29, 35, 40, 50, 55, 61, 76], + [23, 29, 35, 42, 46, 52, 65, 76], + [23, 29, 38, 41, 50, 55, 64, 74], + [23, 29, 38, 42, 49, 54, 65, 74], + [23, 30, 34, 40, 49, 53, 62, 77], + [23, 30, 35, 40, 51, 55, 62, 75], + [23, 30, 35, 42, 47, 52, 66, 75], + [23, 30, 37, 42, 49, 53, 66, 74], + [23, 34, 38, 47, 50, 63, 64, 72], + [23, 34, 38, 48, 49, 62, 65, 72], + [23, 35, 36, 46, 51, 62, 65, 72], + [23, 35, 36, 47, 50, 61, 66, 72], + [24, 28, 38, 41, 45, 57, 62, 75], + [24, 28, 38, 42, 44, 56, 63, 75], + [24, 29, 32, 39, 49, 56, 61, 77], + [24, 29, 32, 41, 43, 52, 67, 77], + [24, 29, 33, 39, 50, 57, 61, 76], + [24, 29, 33, 42, 43, 52, 68, 76], + [24, 29, 38, 41, 50, 57, 67, 73], + [24, 29, 38, 42, 49, 56, 68, 73], + [24, 30, 33, 39, 51, 57, 62, 75], + [24, 30, 33, 42, 44, 52, 69, 75], + [24, 32, 37, 43, 51, 63, 67, 72], + [24, 32, 37, 45, 49, 61, 69, 72], + [24, 33, 36, 43, 51, 62, 68, 72], + [24, 33, 36, 44, 50, 61, 69, 72], + [25, 28, 35, 40, 45, 59, 61, 76], + [25, 28, 38, 41, 45, 59, 64, 74], + [25, 28, 38, 42, 44, 58, 65, 74], + [25, 30, 31, 40, 44, 53, 67, 77], + [25, 30, 33, 39, 51, 59, 64, 74], + [25, 30, 35, 40, 51, 59, 67, 73], + [25, 31, 38, 44, 48, 65, 67, 72], + [25, 31, 38, 45, 47, 64, 68, 72], + [26, 28, 34, 40, 43, 58, 62, 77], + [26, 28, 35, 40, 45, 60, 62, 75], + [26, 28, 37, 42, 43, 58, 66, 74], + [26, 29, 31, 39, 46, 56, 64, 77], + [26, 29, 31, 40, 43, 54, 67, 77], + [26, 29, 33, 39, 50, 60, 64, 74], + [26, 29, 35, 40, 50, 60, 67, 73], + [26, 31, 37, 43, 48, 66, 67, 72], + [26, 31, 37, 45, 46, 64, 69, 72], + [27, 28, 34, 40, 43, 59, 63, 76], + [27, 28, 36, 41, 43, 59, 66, 74], + [27, 29, 31, 39, 46, 57, 65, 76], + [27, 29, 31, 40, 43, 55, 68, 76], + [27, 29, 32, 39, 49, 60, 65, 74], + [27, 30, 31, 39, 47, 57, 66, 75], + [27, 30, 31, 40, 44, 55, 69, 75], + [27, 30, 34, 40, 49, 59, 69, 73], + [27, 31, 36, 43, 47, 66, 68, 72], + [27, 31, 36, 44, 46, 65, 69, 72], + [28, 34, 38, 56, 59, 63, 64, 71], + [28, 34, 38, 57, 58, 62, 65, 71], + [28, 35, 36, 56, 59, 61, 66, 71], + [29, 31, 38, 54, 57, 65, 67, 71], + [29, 31, 38, 55, 56, 64, 68, 71], + [29, 32, 35, 52, 60, 65, 67, 71], + [30, 31, 37, 53, 57, 66, 67, 71], + [30, 33, 34, 52, 59, 64, 69, 71], + [39, 46, 51, 56, 59, 63, 64, 70], + [39, 46, 51, 57, 58, 62, 65, 70], + [39, 47, 50, 57, 58, 61, 66, 70], + [39, 48, 49, 56, 59, 61, 66, 70], + [40, 43, 51, 54, 59, 63, 67, 70], + [40, 43, 51, 55, 58, 62, 68, 70], + [40, 44, 50, 53, 60, 63, 67, 70], + [40, 44, 50, 55, 58, 61, 69, 70], + [40, 45, 49, 53, 60, 62, 68, 70], + [40, 45, 49, 54, 59, 61, 69, 70], + [41, 43, 48, 52, 59, 66, 67, 70], + [41, 45, 46, 52, 59, 64, 69, 70], + [42, 43, 47, 52, 58, 66, 68, 70], + [42, 44, 46, 52, 58, 65, 69, 70]] + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data4.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data4.lean new file mode 100644 index 0000000000..62881ef007 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data4.lean @@ -0,0 +1,218 @@ +/-! Generated by Matarener/Internal local-topology-2026-10-27/e8hand/gen_lean_step4.py. Step 4 data: for each +port t, seven A2 triangles (x, y, a, b) with r_y = a r_t + b r_x mod 3, and the inverse C of [r_t; r_x...]. -/ + +namespace CarrierCode.E8 + +def a2Data : List (List Nat) := [ + [1, 90, 1, 2, 2, 91, 1, 2, 3, 93, 1, 2, 4, 94, 1, 2, 5, 78, 1, 2, 11, 81, 1, 2, 12, 82, 1, 2], + [0, 90, 2, 1, 2, 95, 1, 2, 3, 97, 1, 2, 4, 98, 1, 2, 6, 78, 1, 2, 14, 81, 1, 2, 15, 82, 1, 2], + [0, 91, 2, 1, 1, 95, 2, 1, 3, 100, 1, 2, 4, 101, 1, 2, 7, 78, 1, 2, 11, 79, 1, 2, 24, 71, 1, 2], + [0, 93, 2, 1, 1, 97, 2, 1, 2, 100, 2, 1, 9, 78, 1, 2, 16, 80, 1, 2, 19, 82, 1, 2, 21, 84, 1, 2], + [0, 94, 2, 1, 1, 98, 2, 1, 2, 101, 2, 1, 10, 78, 1, 2, 13, 79, 1, 2, 20, 82, 1, 2, 21, 83, 1, 2], + [0, 78, 2, 1, 6, 90, 1, 2, 7, 91, 1, 2, 8, 92, 1, 2, 9, 93, 1, 2, 10, 94, 1, 2, 11, 86, 1, 2], + [1, 78, 2, 1, 5, 90, 2, 1, 7, 95, 1, 2, 8, 96, 1, 2, 9, 97, 1, 2, 10, 98, 1, 2, 14, 86, 1, 2], + [2, 78, 2, 1, 5, 91, 2, 1, 6, 95, 2, 1, 8, 99, 1, 2, 9, 100, 1, 2, 10, 101, 1, 2, 11, 85, 1, 2], + [5, 92, 2, 1, 6, 96, 2, 1, 7, 99, 2, 1, 9, 102, 1, 2, 10, 103, 1, 2, 12, 85, 1, 2, 25, 70, 1, 2], + [3, 78, 2, 1, 5, 93, 2, 1, 6, 97, 2, 1, 7, 100, 2, 1, 8, 102, 2, 1, 18, 86, 1, 2, 21, 89, 1, 2], + [4, 78, 2, 1, 5, 94, 2, 1, 6, 98, 2, 1, 7, 101, 2, 1, 8, 103, 2, 1, 13, 85, 1, 2, 21, 88, 1, 2], + [0, 81, 2, 1, 2, 79, 2, 1, 5, 86, 2, 1, 12, 99, 1, 2, 13, 101, 1, 2, 14, 90, 1, 2, 18, 93, 1, 2], + [0, 82, 2, 1, 5, 87, 2, 1, 8, 85, 2, 1, 11, 99, 2, 1, 13, 103, 1, 2, 15, 90, 1, 2, 19, 93, 1, 2], + [0, 84, 2, 1, 4, 79, 2, 1, 5, 89, 2, 1, 11, 101, 2, 1, 12, 103, 2, 1, 17, 90, 1, 2, 21, 93, 1, 2], + [1, 81, 2, 1, 2, 80, 2, 1, 6, 86, 2, 1, 11, 90, 2, 1, 15, 99, 1, 2, 16, 100, 1, 2, 17, 101, 1, 2], + [1, 82, 2, 1, 6, 87, 2, 1, 12, 90, 2, 1, 14, 99, 2, 1, 16, 102, 1, 2, 17, 103, 1, 2, 19, 97, 1, 2], + [1, 83, 2, 1, 3, 80, 2, 1, 6, 88, 2, 1, 14, 100, 2, 1, 15, 102, 2, 1, 21, 98, 1, 2, 22, 68, 2, 2], + [1, 84, 2, 1, 4, 80, 2, 1, 6, 89, 2, 1, 13, 90, 2, 1, 14, 101, 2, 1, 15, 103, 2, 1, 21, 97, 1, 2], + [2, 83, 2, 1, 3, 81, 2, 1, 7, 88, 2, 1, 11, 93, 2, 1, 14, 97, 2, 1, 19, 99, 1, 2, 21, 101, 1, 2], + [3, 82, 2, 1, 8, 88, 2, 1, 9, 87, 2, 1, 12, 93, 2, 1, 15, 97, 2, 1, 18, 99, 2, 1, 21, 103, 1, 2], + [4, 82, 2, 1, 8, 89, 2, 1, 10, 87, 2, 1, 12, 94, 2, 1, 15, 98, 2, 1, 21, 102, 1, 2, 22, 62, 2, 2], + [3, 84, 2, 1, 4, 83, 2, 1, 9, 89, 2, 1, 13, 93, 2, 1, 16, 98, 2, 1, 18, 101, 2, 1, 19, 103, 2, 1], + [0, 71, 2, 1, 5, 70, 2, 1, 15, 69, 2, 2, 16, 68, 2, 2, 17, 67, 2, 2, 18, 65, 2, 2, 19, 63, 2, 2], + [1, 71, 2, 1, 6, 70, 2, 1, 12, 69, 2, 2, 13, 67, 2, 2, 18, 59, 2, 2, 19, 57, 2, 2, 20, 56, 2, 2], + [2, 71, 2, 1, 7, 70, 2, 1, 12, 66, 2, 2, 13, 64, 2, 2, 15, 60, 2, 2, 16, 59, 2, 2, 19, 55, 2, 2], + [8, 70, 2, 1, 11, 66, 2, 2, 13, 62, 2, 2, 14, 60, 2, 2, 16, 57, 2, 2, 18, 55, 2, 2, 22, 92, 2, 1], + [3, 71, 2, 1, 9, 70, 2, 1, 11, 65, 2, 2, 12, 63, 2, 2, 13, 61, 2, 2, 14, 59, 2, 2, 20, 52, 2, 2], + [4, 71, 2, 1, 10, 70, 2, 1, 11, 64, 2, 2, 12, 62, 2, 2, 14, 58, 2, 2, 18, 53, 2, 2, 22, 94, 2, 1], + [0, 73, 2, 1, 1, 72, 2, 1, 8, 69, 2, 2, 9, 68, 2, 2, 10, 67, 2, 2, 18, 50, 2, 2, 19, 48, 2, 2], + [0, 75, 2, 1, 6, 69, 2, 2, 7, 66, 2, 2, 9, 63, 2, 2, 10, 62, 2, 2, 12, 70, 2, 1, 14, 51, 2, 2], + [0, 76, 2, 1, 3, 72, 2, 1, 6, 68, 2, 2, 7, 65, 2, 2, 8, 63, 2, 2, 10, 61, 2, 2, 14, 50, 2, 2], + [1, 74, 2, 1, 2, 73, 2, 1, 8, 60, 2, 2, 9, 59, 2, 2, 10, 58, 2, 2, 12, 51, 2, 2, 14, 70, 2, 1], + [1, 76, 2, 1, 3, 73, 2, 1, 5, 68, 2, 2, 7, 59, 2, 2, 8, 57, 2, 2, 11, 50, 2, 2, 13, 46, 2, 2], + [1, 77, 2, 1, 4, 73, 2, 1, 5, 67, 2, 2, 7, 58, 2, 2, 8, 56, 2, 2, 11, 49, 2, 2, 17, 70, 2, 1], + [2, 75, 2, 1, 5, 66, 2, 2, 6, 60, 2, 2, 9, 55, 2, 2, 10, 54, 2, 2, 13, 44, 2, 2, 25, 86, 2, 1], + [2, 77, 2, 1, 4, 74, 2, 1, 5, 64, 2, 2, 6, 58, 2, 2, 8, 54, 2, 2, 9, 53, 2, 2, 12, 44, 2, 2], + [3, 75, 2, 1, 5, 63, 2, 2, 6, 57, 2, 2, 7, 55, 2, 2, 10, 52, 2, 2, 11, 45, 2, 2, 19, 70, 2, 1], + [4, 75, 2, 1, 5, 62, 2, 2, 6, 56, 2, 2, 7, 54, 2, 2, 9, 52, 2, 2, 11, 44, 2, 2, 20, 70, 2, 1], + [3, 77, 2, 1, 4, 76, 2, 1, 5, 61, 2, 2, 7, 53, 2, 2, 8, 52, 2, 2, 11, 43, 2, 2, 15, 40, 2, 2], + [3, 68, 2, 2, 4, 67, 2, 2, 5, 73, 2, 1, 6, 72, 2, 1, 18, 37, 2, 2, 19, 35, 2, 2, 21, 34, 2, 2], + [3, 65, 2, 2, 4, 64, 2, 2, 5, 74, 2, 1, 7, 72, 2, 1, 11, 71, 2, 1, 15, 38, 2, 2, 16, 37, 2, 2], + [1, 68, 2, 2, 2, 65, 2, 2, 4, 61, 2, 2, 5, 76, 2, 1, 9, 72, 2, 1, 14, 37, 2, 2, 15, 35, 2, 2], + [1, 67, 2, 2, 2, 64, 2, 2, 3, 61, 2, 2, 5, 77, 2, 1, 10, 72, 2, 1, 13, 71, 2, 1, 14, 36, 2, 2], + [0, 69, 2, 2, 2, 60, 2, 2, 3, 57, 2, 2, 4, 56, 2, 2, 6, 75, 2, 1, 8, 73, 2, 1, 11, 38, 2, 2], + [0, 68, 2, 2, 2, 59, 2, 2, 6, 76, 2, 1, 9, 73, 2, 1, 11, 37, 2, 2, 12, 35, 2, 2, 13, 34, 2, 2], + [0, 67, 2, 2, 2, 58, 2, 2, 6, 77, 2, 1, 10, 73, 2, 1, 11, 36, 2, 2, 17, 71, 2, 1, 18, 29, 2, 2], + [0, 66, 2, 2, 1, 60, 2, 2, 3, 55, 2, 2, 4, 54, 2, 2, 7, 75, 2, 1, 8, 74, 2, 1, 13, 32, 2, 2], + [0, 65, 2, 2, 1, 59, 2, 2, 4, 53, 2, 2, 7, 76, 2, 1, 9, 74, 2, 1, 12, 33, 2, 2, 17, 29, 2, 2], + [0, 64, 2, 2, 1, 58, 2, 2, 3, 53, 2, 2, 7, 77, 2, 1, 10, 74, 2, 1, 12, 32, 2, 2, 16, 29, 2, 2], + [0, 63, 2, 2, 1, 57, 2, 2, 2, 55, 2, 2, 4, 52, 2, 2, 8, 76, 2, 1, 9, 75, 2, 1, 11, 33, 2, 2], + [0, 62, 2, 2, 1, 56, 2, 2, 2, 54, 2, 2, 3, 52, 2, 2, 8, 77, 2, 1, 10, 75, 2, 1, 11, 32, 2, 2], + [0, 61, 2, 2, 2, 53, 2, 2, 9, 77, 2, 1, 10, 76, 2, 1, 12, 31, 2, 2, 14, 29, 2, 2, 21, 71, 2, 1], + [3, 50, 2, 2, 4, 49, 2, 2, 8, 38, 2, 2, 9, 37, 2, 2, 11, 73, 2, 1, 14, 72, 2, 1, 19, 27, 2, 2], + [2, 51, 2, 2, 3, 48, 2, 2, 4, 47, 2, 2, 7, 38, 2, 2, 12, 73, 2, 1, 15, 72, 2, 1, 18, 27, 2, 2], + [2, 50, 2, 2, 4, 46, 2, 2, 7, 37, 2, 2, 8, 35, 2, 2, 16, 72, 2, 1, 20, 24, 2, 2, 28, 83, 2, 1], + [2, 49, 2, 2, 3, 46, 2, 2, 7, 36, 2, 2, 13, 73, 2, 1, 17, 72, 2, 1, 18, 25, 2, 2, 19, 24, 2, 2], + [1, 50, 2, 2, 4, 43, 2, 2, 6, 37, 2, 2, 8, 33, 2, 2, 11, 76, 2, 1, 15, 27, 2, 2, 18, 72, 2, 1], + [1, 49, 2, 2, 3, 43, 2, 2, 6, 36, 2, 2, 8, 32, 2, 2, 11, 77, 2, 1, 13, 74, 2, 1, 15, 26, 2, 2], + [1, 48, 2, 2, 2, 45, 2, 2, 6, 35, 2, 2, 10, 31, 2, 2, 12, 76, 2, 1, 14, 27, 2, 2, 19, 72, 2, 1], + [1, 47, 2, 2, 2, 44, 2, 2, 7, 32, 2, 2, 9, 31, 2, 2, 12, 77, 2, 1, 13, 75, 2, 1, 14, 26, 2, 2], + [1, 46, 2, 2, 2, 43, 2, 2, 6, 34, 2, 2, 8, 31, 2, 2, 13, 76, 2, 1, 14, 25, 2, 2, 21, 72, 2, 1], + [0, 51, 2, 2, 3, 42, 2, 2, 4, 41, 2, 2, 5, 38, 2, 2, 13, 26, 2, 2, 14, 75, 2, 1, 15, 74, 2, 1], + [0, 50, 2, 2, 5, 37, 2, 2, 10, 29, 2, 2, 12, 27, 2, 2, 13, 25, 2, 2, 14, 76, 2, 1, 16, 74, 2, 1], + [0, 49, 2, 2, 5, 36, 2, 2, 8, 30, 2, 2, 9, 29, 2, 2, 12, 26, 2, 2, 14, 77, 2, 1, 17, 74, 2, 1], + [0, 48, 2, 2, 2, 42, 2, 2, 4, 40, 2, 2, 5, 35, 2, 2, 11, 27, 2, 2, 15, 76, 2, 1, 16, 75, 2, 1], + [0, 47, 2, 2, 2, 41, 2, 2, 3, 40, 2, 2, 7, 30, 2, 2, 11, 26, 2, 2, 15, 77, 2, 1, 17, 75, 2, 1], + [0, 46, 2, 2, 5, 34, 2, 2, 7, 29, 2, 2, 11, 25, 2, 2, 12, 24, 2, 2, 16, 77, 2, 1, 17, 76, 2, 1], + [0, 45, 2, 2, 1, 42, 2, 2, 4, 39, 2, 2, 5, 33, 2, 2, 13, 23, 2, 2, 18, 75, 2, 1, 19, 74, 2, 1], + [0, 44, 2, 2, 1, 41, 2, 2, 3, 39, 2, 2, 5, 32, 2, 2, 16, 22, 2, 2, 20, 74, 2, 1, 34, 84, 2, 1], + [0, 43, 2, 2, 6, 29, 2, 2, 8, 28, 2, 2, 12, 23, 2, 2, 15, 22, 2, 2, 18, 77, 2, 1, 21, 74, 2, 1], + [5, 22, 2, 1, 6, 23, 2, 1, 7, 24, 2, 1, 8, 25, 2, 1, 9, 26, 2, 1, 10, 27, 2, 1, 12, 29, 2, 1], + [0, 22, 2, 1, 1, 23, 2, 1, 2, 24, 2, 1, 3, 26, 2, 1, 4, 27, 2, 1, 11, 40, 2, 1, 15, 43, 2, 1], + [1, 28, 2, 1, 3, 30, 2, 1, 6, 39, 2, 1, 7, 40, 2, 1, 10, 42, 2, 1, 14, 52, 2, 1, 15, 53, 2, 1], + [0, 28, 2, 1, 2, 31, 2, 1, 3, 32, 2, 1, 4, 33, 2, 1, 5, 39, 2, 1, 8, 43, 2, 1, 11, 52, 2, 1], + [1, 31, 2, 1, 4, 35, 2, 1, 5, 40, 2, 1, 8, 46, 2, 1, 9, 47, 2, 1, 10, 48, 2, 1, 13, 57, 2, 1], + [0, 29, 2, 1, 2, 34, 2, 1, 3, 36, 2, 1, 4, 37, 2, 1, 6, 43, 2, 1, 7, 46, 2, 1, 13, 59, 2, 1], + [0, 30, 2, 1, 1, 32, 2, 1, 4, 38, 2, 1, 5, 41, 2, 1, 7, 47, 2, 1, 8, 49, 2, 1, 11, 56, 2, 1], + [1, 33, 2, 1, 2, 35, 2, 1, 3, 38, 2, 1, 5, 42, 2, 1, 6, 45, 2, 1, 8, 50, 2, 1, 11, 57, 2, 1], + [0, 5, 2, 1, 1, 6, 2, 1, 2, 7, 2, 1, 3, 9, 2, 1, 4, 10, 2, 1, 28, 39, 2, 1, 34, 46, 2, 1], + [2, 11, 2, 1, 4, 13, 2, 1, 23, 39, 2, 1, 24, 40, 2, 1, 26, 41, 2, 1, 31, 52, 2, 1, 36, 58, 2, 1], + [2, 14, 2, 1, 3, 16, 2, 1, 4, 17, 2, 1, 22, 39, 2, 1, 25, 43, 2, 1, 26, 44, 2, 1, 29, 53, 2, 1], + [0, 11, 2, 1, 1, 14, 2, 1, 3, 18, 2, 1, 22, 40, 2, 1, 25, 46, 2, 1, 27, 48, 2, 1, 28, 52, 2, 1], + [0, 12, 2, 1, 1, 15, 2, 1, 3, 19, 2, 1, 4, 20, 2, 1, 23, 43, 2, 1, 24, 46, 2, 1, 28, 53, 2, 1], + [1, 16, 2, 1, 2, 18, 2, 1, 4, 21, 2, 1, 22, 41, 2, 1, 23, 44, 2, 1, 25, 49, 2, 1, 28, 54, 2, 1], + [0, 13, 2, 1, 1, 17, 2, 1, 3, 21, 2, 1, 22, 42, 2, 1, 24, 48, 2, 1, 25, 50, 2, 1, 28, 55, 2, 1], + [7, 11, 2, 1, 8, 12, 2, 1, 10, 13, 2, 1, 23, 28, 2, 1, 25, 29, 2, 1, 26, 30, 2, 1, 43, 53, 2, 1], + [5, 11, 2, 1, 6, 14, 2, 1, 9, 18, 2, 1, 23, 31, 2, 1, 25, 34, 2, 1, 27, 35, 2, 1, 39, 52, 2, 1], + [5, 12, 2, 1, 6, 15, 2, 1, 9, 19, 2, 1, 10, 20, 2, 1, 22, 29, 2, 1, 24, 34, 2, 1, 39, 53, 2, 1], + [6, 16, 2, 1, 7, 18, 2, 1, 8, 19, 2, 1, 10, 21, 2, 1, 22, 30, 2, 1, 23, 32, 2, 1, 39, 54, 2, 1], + [5, 13, 2, 1, 6, 17, 2, 1, 8, 20, 2, 1, 9, 21, 2, 1, 23, 33, 2, 1, 24, 35, 2, 1, 39, 55, 2, 1], + [0, 1, 2, 1, 5, 6, 2, 1, 11, 14, 2, 1, 12, 15, 2, 1, 13, 17, 2, 1, 22, 23, 2, 1, 30, 32, 2, 1], + [0, 2, 2, 1, 5, 7, 2, 1, 22, 24, 2, 1, 28, 31, 2, 1, 29, 34, 2, 1, 41, 47, 2, 1, 42, 48, 2, 1], + [5, 8, 2, 1, 13, 20, 2, 1, 22, 25, 2, 1, 30, 36, 2, 1, 39, 43, 2, 1, 40, 46, 2, 1, 41, 49, 2, 1], + [0, 3, 2, 1, 5, 9, 2, 1, 11, 18, 2, 1, 12, 19, 2, 1, 13, 21, 2, 1, 22, 26, 2, 1, 28, 32, 2, 1], + [0, 4, 2, 1, 5, 10, 2, 1, 12, 20, 2, 1, 22, 27, 2, 1, 28, 33, 2, 1, 30, 38, 2, 1, 40, 48, 2, 1], + [1, 2, 2, 1, 6, 7, 2, 1, 16, 18, 2, 1, 23, 24, 2, 1, 33, 35, 2, 1, 39, 40, 2, 1, 43, 46, 2, 1], + [6, 8, 2, 1, 16, 19, 2, 1, 17, 20, 2, 1, 23, 25, 2, 1, 28, 29, 2, 1, 31, 34, 2, 1, 44, 49, 2, 1], + [1, 3, 2, 1, 6, 9, 2, 1, 14, 18, 2, 1, 15, 19, 2, 1, 17, 21, 2, 1, 23, 26, 2, 1, 28, 30, 2, 1], + [1, 4, 2, 1, 6, 10, 2, 1, 15, 20, 2, 1, 16, 21, 2, 1, 23, 27, 2, 1, 31, 35, 2, 1, 39, 42, 2, 1], + [7, 8, 2, 1, 11, 12, 2, 1, 14, 15, 2, 1, 18, 19, 2, 1, 24, 25, 2, 1, 35, 37, 2, 1, 47, 49, 2, 1], + [2, 3, 2, 1, 7, 9, 2, 1, 14, 16, 2, 1, 24, 26, 2, 1, 34, 36, 2, 1, 35, 38, 2, 1, 40, 41, 2, 1], + [2, 4, 2, 1, 7, 10, 2, 1, 11, 13, 2, 1, 14, 17, 2, 1, 18, 21, 2, 1, 24, 27, 2, 1, 34, 37, 2, 1], + [8, 9, 2, 1, 15, 16, 2, 1, 20, 21, 2, 1, 25, 26, 2, 1, 29, 30, 2, 1, 43, 44, 2, 1, 46, 47, 2, 1], + [8, 10, 2, 1, 12, 13, 2, 1, 15, 17, 2, 1, 19, 21, 2, 1, 25, 27, 2, 1, 34, 35, 2, 1, 43, 45, 2, 1]] + +def invData : List (List (List Nat)) := [ + [[0, 1, 2, 1, 2, 2, 0, 2], [1, 2, 1, 2, 1, 1, 0, 1], [2, 1, 2, 1, 2, 0, 0, 2], [0, 0, 1, 2, 1, 1, 0, 1], [0, 2, 1, 0, 1, 1, 0, 1], [2, 1, 1, 1, 0, 2, 1, 2], [2, 1, 2, 1, 2, 2, 0, 0], [2, 1, 2, 1, 2, 2, 1, 2]], + [[0, 1, 2, 1, 2, 2, 0, 2], [0, 0, 1, 2, 1, 1, 0, 1], [2, 1, 2, 1, 2, 0, 0, 2], [1, 2, 1, 2, 1, 1, 0, 1], [0, 2, 1, 0, 1, 1, 0, 1], [2, 1, 1, 1, 0, 2, 1, 2], [2, 1, 2, 1, 2, 2, 0, 0], [2, 1, 2, 1, 2, 2, 1, 2]], + [[1, 0, 2, 2, 0, 1, 2, 2], [2, 1, 1, 1, 0, 2, 1, 1], [0, 0, 2, 2, 0, 2, 2, 2], [2, 0, 2, 1, 0, 2, 1, 1], [2, 0, 1, 2, 0, 2, 1, 1], [0, 2, 2, 2, 1, 1, 0, 2], [0, 1, 1, 1, 2, 2, 0, 0], [1, 2, 2, 2, 0, 1, 0, 2]], + [[0, 1, 0, 2, 2, 1, 2, 2], [0, 0, 0, 1, 1, 2, 1, 1], [2, 1, 0, 2, 0, 1, 2, 2], [0, 2, 1, 1, 1, 2, 1, 1], [1, 2, 0, 1, 1, 2, 1, 1], [2, 1, 0, 2, 2, 1, 2, 0], [2, 1, 0, 2, 2, 1, 0, 2], [2, 1, 2, 0, 2, 2, 2, 2]], + [[1, 2, 1, 2, 2, 2, 2, 1], [2, 2, 2, 1, 1, 1, 1, 2], [0, 2, 1, 2, 0, 2, 2, 1], [2, 1, 0, 1, 1, 1, 1, 2], [2, 2, 2, 1, 1, 0, 1, 0], [1, 1, 1, 2, 2, 0, 2, 1], [0, 2, 1, 2, 2, 2, 0, 1], [0, 1, 1, 0, 2, 0, 2, 1]], + [[2, 0, 1, 0, 2, 1, 2, 2], [1, 1, 2, 0, 1, 2, 1, 1], [0, 2, 1, 0, 2, 1, 2, 2], [0, 1, 0, 0, 1, 2, 1, 1], [0, 1, 2, 0, 1, 0, 1, 1], [2, 2, 1, 2, 2, 1, 0, 0], [2, 2, 1, 2, 0, 1, 2, 0], [2, 2, 1, 0, 2, 1, 2, 0]], + [[2, 0, 1, 0, 2, 1, 2, 2], [0, 1, 0, 0, 1, 2, 1, 1], [0, 2, 1, 0, 2, 1, 2, 2], [1, 1, 2, 0, 1, 2, 1, 1], [0, 1, 2, 0, 1, 0, 1, 1], [2, 2, 1, 2, 2, 1, 0, 0], [2, 2, 1, 2, 0, 1, 2, 0], [2, 2, 1, 0, 2, 1, 2, 0]], + [[0, 0, 2, 1, 2, 1, 2, 2], [2, 1, 2, 2, 1, 2, 1, 1], [1, 2, 2, 1, 2, 1, 2, 2], [2, 1, 1, 0, 1, 2, 1, 1], [2, 1, 1, 2, 1, 0, 1, 1], [0, 2, 1, 1, 2, 1, 0, 0], [0, 2, 1, 1, 0, 1, 2, 0], [1, 2, 1, 1, 2, 1, 2, 0]], + [[0, 2, 1, 2, 1, 2, 2, 0], [2, 0, 0, 2, 0, 2, 1, 2], [1, 1, 0, 1, 0, 1, 2, 1], [2, 2, 1, 2, 0, 2, 1, 2], [2, 2, 0, 2, 1, 2, 1, 2], [0, 0, 0, 1, 0, 2, 0, 1], [1, 0, 0, 1, 0, 1, 0, 1], [0, 0, 0, 2, 0, 1, 0, 1]], + [[2, 0, 1, 1, 2, 2, 0, 2], [0, 1, 0, 2, 1, 1, 0, 1], [0, 2, 1, 1, 2, 2, 0, 2], [0, 1, 2, 0, 1, 1, 0, 1], [1, 1, 2, 2, 1, 1, 0, 1], [2, 2, 1, 1, 2, 2, 0, 0], [2, 2, 1, 1, 1, 0, 1, 2], [2, 2, 1, 1, 2, 2, 1, 2]], + [[0, 0, 0, 1, 2, 2, 1, 1], [2, 1, 1, 2, 1, 1, 2, 2], [1, 2, 0, 1, 2, 2, 1, 1], [2, 1, 0, 0, 1, 1, 2, 2], [2, 1, 1, 2, 1, 1, 1, 0], [1, 2, 2, 1, 2, 2, 2, 1], [0, 2, 2, 1, 2, 0, 2, 1], [0, 2, 2, 1, 0, 2, 2, 1]], + [[2, 2, 1, 2, 2, 2, 1, 1], [1, 2, 2, 1, 1, 1, 2, 2], [2, 1, 1, 0, 2, 2, 1, 1], [0, 2, 2, 1, 1, 1, 0, 2], [0, 2, 2, 1, 1, 1, 2, 0], [2, 1, 1, 2, 2, 0, 1, 1], [2, 1, 1, 2, 0, 2, 1, 1], [0, 1, 1, 2, 2, 2, 1, 1]], + [[2, 0, 1, 1, 2, 2, 1, 1], [1, 1, 2, 2, 1, 1, 2, 2], [2, 2, 2, 1, 2, 2, 1, 1], [0, 1, 2, 2, 1, 1, 0, 2], [0, 1, 2, 2, 1, 1, 2, 0], [2, 2, 1, 1, 2, 0, 1, 1], [0, 2, 1, 1, 2, 2, 1, 1], [2, 2, 1, 1, 0, 2, 1, 1]], + [[2, 2, 1, 2, 2, 2, 1, 1], [1, 2, 2, 1, 1, 1, 2, 2], [2, 1, 1, 0, 2, 2, 1, 1], [0, 2, 2, 1, 1, 1, 0, 2], [0, 2, 2, 1, 1, 1, 2, 0], [0, 1, 1, 2, 2, 2, 1, 1], [2, 1, 1, 2, 2, 0, 1, 1], [2, 1, 1, 2, 0, 2, 1, 1]], + [[2, 1, 2, 2, 1, 2, 1, 2], [0, 0, 1, 1, 0, 1, 2, 1], [2, 0, 2, 0, 1, 2, 1, 2], [1, 0, 1, 1, 2, 1, 2, 1], [0, 2, 2, 1, 2, 1, 0, 1], [2, 0, 2, 2, 1, 2, 1, 0], [2, 0, 2, 2, 1, 0, 1, 2], [0, 0, 2, 2, 1, 2, 1, 2]], + [[2, 0, 2, 1, 2, 2, 2, 2], [0, 1, 1, 0, 1, 1, 1, 1], [2, 2, 0, 1, 2, 2, 2, 2], [1, 1, 1, 2, 1, 1, 1, 1], [0, 1, 1, 2, 1, 1, 1, 2], [2, 2, 2, 1, 2, 2, 0, 2], [0, 2, 2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 0, 2, 2, 2]], + [[2, 2, 0, 1, 0, 0, 0, 2], [1, 1, 0, 1, 1, 1, 1, 0], [2, 1, 0, 2, 0, 0, 0, 2], [1, 2, 0, 2, 0, 0, 0, 1], [1, 1, 1, 2, 0, 0, 0, 1], [2, 2, 2, 1, 0, 0, 1, 2], [2, 1, 0, 1, 0, 1, 0, 2], [2, 1, 0, 1, 1, 0, 0, 2]], + [[2, 2, 1, 2, 1, 2, 2, 1], [0, 2, 2, 1, 0, 1, 1, 2], [2, 1, 1, 0, 1, 2, 2, 1], [1, 2, 2, 1, 2, 1, 1, 2], [0, 2, 2, 1, 2, 1, 1, 0], [0, 1, 1, 2, 1, 2, 2, 1], [2, 1, 1, 2, 1, 2, 0, 1], [2, 1, 1, 2, 1, 0, 2, 1]], + [[2, 2, 1, 2, 1, 1, 2, 2], [0, 1, 0, 1, 0, 2, 1, 1], [2, 1, 1, 0, 1, 1, 2, 2], [0, 1, 0, 1, 2, 0, 1, 1], [1, 1, 0, 1, 2, 2, 1, 1], [2, 2, 0, 2, 1, 1, 2, 0], [2, 2, 0, 2, 1, 1, 0, 2], [0, 2, 0, 2, 1, 1, 2, 2]], + [[2, 0, 1, 1, 1, 1, 2, 2], [0, 1, 2, 2, 0, 2, 1, 1], [2, 2, 1, 2, 1, 1, 2, 2], [0, 1, 2, 2, 2, 0, 1, 1], [1, 1, 2, 2, 2, 2, 1, 1], [2, 2, 1, 1, 1, 1, 2, 0], [0, 2, 1, 1, 1, 1, 2, 2], [2, 2, 1, 1, 1, 1, 0, 2]], + [[1, 2, 0, 1, 0, 2, 2, 2], [1, 2, 0, 2, 1, 1, 1, 1], [1, 1, 0, 2, 0, 2, 2, 2], [1, 2, 0, 2, 0, 2, 1, 1], [1, 2, 1, 1, 0, 1, 2, 1], [2, 1, 2, 2, 0, 2, 2, 2], [2, 1, 0, 1, 0, 2, 2, 2], [0, 2, 0, 2, 1, 1, 1, 0]], + [[2, 1, 2, 2, 1, 1, 2, 2], [0, 0, 1, 1, 0, 2, 1, 1], [2, 0, 2, 0, 1, 1, 2, 2], [0, 2, 2, 1, 2, 0, 1, 1], [1, 0, 1, 1, 2, 2, 1, 1], [0, 0, 2, 2, 1, 1, 2, 2], [2, 0, 2, 2, 1, 1, 2, 0], [2, 0, 2, 2, 1, 1, 0, 2]], + [[2, 2, 1, 0, 2, 0, 0, 0], [1, 2, 2, 0, 1, 0, 0, 0], [2, 1, 2, 0, 2, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 1, 1, 1, 1], [0, 2, 2, 2, 2, 0, 2, 0], [0, 2, 2, 0, 2, 2, 2, 0], [0, 2, 2, 0, 2, 2, 0, 2]], + [[2, 2, 1, 0, 2, 0, 2, 1], [0, 1, 1, 1, 2, 1, 1, 2], [2, 1, 2, 0, 2, 0, 2, 1], [1, 2, 2, 0, 1, 0, 1, 2], [0, 1, 1, 0, 2, 1, 2, 2], [0, 2, 2, 2, 2, 2, 2, 1], [0, 2, 2, 0, 1, 2, 2, 1], [0, 2, 2, 0, 1, 0, 1, 1]], + [[0, 0, 2, 2, 2, 0, 1, 0], [2, 0, 0, 2, 2, 0, 0, 0], [0, 2, 0, 2, 2, 0, 1, 0], [2, 0, 0, 1, 2, 1, 0, 0], [2, 0, 0, 1, 2, 0, 0, 1], [1, 0, 0, 1, 2, 0, 0, 0], [1, 0, 0, 2, 1, 0, 0, 0], [2, 1, 1, 2, 0, 2, 0, 2]], + [[0, 2, 2, 2, 0, 1, 0, 0], [2, 0, 2, 2, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 1], [2, 0, 1, 2, 1, 0, 0, 0], [2, 0, 1, 2, 0, 0, 1, 0], [1, 0, 1, 2, 0, 0, 0, 0], [2, 0, 0, 1, 2, 1, 2, 2], [1, 0, 2, 1, 0, 0, 0, 0]], + [[2, 2, 1, 1, 2, 2, 2, 1], [0, 1, 1, 2, 2, 2, 2, 2], [2, 1, 2, 1, 2, 2, 2, 1], [0, 1, 1, 1, 2, 2, 0, 2], [1, 2, 2, 2, 1, 1, 1, 2], [0, 2, 2, 1, 1, 2, 1, 1], [0, 2, 2, 1, 2, 1, 1, 1], [0, 2, 2, 2, 1, 1, 1, 1]], + [[0, 1, 0, 1, 1, 0, 0, 1], [2, 0, 0, 2, 2, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 1], [2, 0, 0, 1, 2, 1, 0, 0], [2, 0, 0, 1, 2, 0, 1, 0], [2, 1, 1, 2, 0, 2, 2, 0], [1, 0, 0, 1, 2, 0, 0, 0], [1, 0, 0, 2, 1, 0, 0, 0]], + [[1, 2, 2, 1, 2, 1, 1, 0], [2, 2, 1, 2, 1, 2, 2, 0], [0, 1, 1, 2, 2, 2, 2, 0], [2, 1, 2, 2, 1, 2, 2, 0], [0, 2, 2, 1, 2, 1, 1, 0], [0, 1, 1, 1, 1, 0, 2, 1], [0, 1, 1, 2, 1, 2, 2, 1], [0, 1, 1, 2, 1, 2, 0, 0]], + [[2, 2, 0, 1, 2, 0, 1, 2], [1, 2, 0, 2, 1, 0, 2, 1], [0, 2, 1, 2, 1, 2, 2, 0], [0, 1, 0, 1, 2, 1, 1, 0], [0, 1, 2, 1, 0, 1, 1, 0], [0, 2, 0, 1, 1, 0, 2, 1], [2, 1, 0, 1, 2, 0, 2, 2], [0, 2, 0, 2, 1, 2, 2, 1]], + [[1, 2, 2, 2, 0, 1, 1, 1], [2, 2, 1, 1, 0, 2, 2, 2], [0, 1, 1, 2, 0, 2, 2, 2], [0, 2, 2, 2, 0, 1, 1, 1], [2, 1, 2, 1, 0, 2, 2, 2], [0, 1, 1, 1, 2, 2, 0, 0], [0, 1, 1, 1, 2, 0, 2, 0], [0, 1, 1, 1, 0, 2, 2, 0]], + [[2, 2, 0, 1, 2, 0, 2, 1], [0, 1, 0, 1, 2, 1, 0, 1], [1, 1, 2, 1, 0, 1, 0, 1], [1, 2, 0, 2, 1, 0, 1, 2], [2, 2, 1, 2, 1, 2, 0, 2], [0, 2, 0, 1, 1, 0, 1, 2], [0, 2, 0, 2, 1, 2, 1, 2], [2, 1, 0, 1, 2, 0, 2, 2]], + [[1, 2, 2, 2, 1, 1, 0, 1], [0, 2, 2, 2, 1, 1, 0, 1], [0, 1, 1, 2, 2, 2, 0, 2], [2, 2, 1, 1, 2, 2, 0, 2], [2, 1, 2, 1, 2, 2, 0, 2], [0, 1, 1, 1, 2, 2, 0, 0], [0, 1, 1, 1, 1, 0, 1, 2], [0, 1, 1, 1, 2, 2, 1, 2]], + [[1, 0, 1, 1, 2, 1, 2, 2], [2, 2, 1, 1, 2, 2, 0, 2], [1, 1, 2, 0, 1, 1, 0, 1], [2, 1, 2, 2, 1, 2, 1, 1], [0, 1, 0, 2, 1, 1, 0, 1], [1, 2, 1, 1, 2, 1, 2, 0], [1, 1, 2, 2, 0, 2, 1, 1], [1, 1, 2, 2, 1, 1, 1, 1]], + [[0, 1, 1, 0, 0, 2, 2, 1], [2, 0, 2, 0, 0, 0, 2, 0], [1, 0, 2, 0, 0, 0, 1, 0], [2, 0, 1, 1, 0, 0, 2, 0], [2, 0, 1, 0, 1, 0, 2, 0], [1, 0, 1, 0, 0, 0, 2, 0], [0, 2, 1, 1, 1, 2, 0, 0], [2, 0, 2, 0, 0, 0, 1, 2]], + [[2, 1, 1, 2, 2, 0, 2, 0], [2, 0, 0, 2, 0, 0, 0, 2], [1, 0, 0, 2, 0, 0, 0, 1], [2, 0, 0, 1, 1, 0, 0, 2], [2, 0, 0, 1, 0, 0, 1, 2], [0, 2, 0, 1, 1, 2, 1, 0], [1, 0, 0, 1, 0, 0, 0, 2], [0, 0, 2, 1, 1, 2, 1, 0]], + [[2, 2, 0, 2, 1, 0, 2, 1], [0, 1, 0, 2, 1, 1, 0, 1], [0, 2, 1, 1, 2, 2, 0, 2], [0, 1, 2, 0, 1, 1, 0, 1], [1, 2, 0, 1, 2, 0, 1, 2], [0, 2, 0, 1, 1, 0, 1, 2], [2, 1, 0, 2, 1, 0, 2, 2], [0, 2, 0, 1, 2, 2, 1, 2]], + [[0, 0, 1, 1, 2, 1, 0, 2], [2, 0, 2, 0, 0, 0, 2, 0], [1, 0, 2, 0, 0, 0, 1, 0], [2, 0, 1, 1, 0, 0, 2, 0], [2, 0, 1, 0, 0, 1, 2, 0], [2, 1, 2, 2, 0, 2, 0, 1], [0, 2, 1, 1, 2, 1, 0, 0], [1, 0, 1, 0, 0, 0, 2, 0]], + [[0, 1, 2, 0, 1, 1, 1, 1], [1, 0, 2, 0, 1, 2, 2, 1], [2, 0, 1, 1, 2, 1, 1, 2], [1, 0, 2, 0, 2, 1, 1, 2], [0, 0, 1, 0, 2, 2, 2, 2], [1, 2, 1, 1, 2, 1, 2, 0], [2, 0, 1, 0, 1, 2, 2, 2], [2, 0, 1, 0, 2, 1, 2, 2]], + [[0, 2, 1, 1, 1, 2, 2, 1], [2, 1, 1, 2, 1, 2, 2, 1], [1, 2, 2, 2, 2, 1, 1, 2], [2, 1, 1, 1, 2, 2, 2, 1], [0, 2, 2, 2, 2, 1, 1, 2], [0, 1, 1, 1, 1, 2, 2, 2], [0, 1, 1, 1, 1, 2, 0, 1], [0, 1, 1, 1, 1, 0, 2, 1]], + [[1, 1, 1, 1, 2, 1, 1, 2], [1, 0, 0, 2, 0, 2, 0, 1], [2, 0, 0, 2, 0, 1, 0, 2], [0, 0, 1, 1, 0, 1, 1, 2], [2, 0, 2, 2, 1, 2, 2, 1], [0, 2, 0, 2, 0, 2, 2, 2], [0, 0, 2, 2, 0, 2, 0, 1], [2, 0, 0, 1, 0, 2, 0, 2]], + [[0, 2, 2, 2, 1, 1, 0, 2], [2, 1, 2, 2, 2, 1, 0, 2], [1, 2, 1, 1, 2, 2, 0, 1], [0, 2, 1, 1, 2, 2, 0, 1], [2, 1, 2, 2, 1, 2, 0, 2], [0, 1, 1, 0, 1, 1, 1, 2], [0, 1, 2, 2, 1, 1, 0, 0], [0, 1, 2, 2, 1, 1, 1, 2]], + [[2, 2, 0, 2, 0, 1, 0, 0], [1, 0, 2, 1, 2, 0, 2, 1], [2, 0, 1, 2, 2, 0, 1, 2], [1, 2, 0, 1, 0, 2, 0, 0], [1, 1, 0, 2, 0, 2, 0, 0], [2, 0, 1, 2, 1, 0, 2, 2], [0, 0, 1, 1, 2, 0, 2, 1], [2, 1, 0, 2, 0, 1, 0, 1]], + [[2, 2, 0, 2, 0, 0, 1, 0], [1, 2, 0, 1, 0, 0, 2, 0], [0, 2, 0, 1, 2, 1, 2, 2], [0, 1, 0, 2, 1, 0, 1, 1], [1, 1, 0, 2, 0, 0, 2, 0], [2, 1, 2, 2, 1, 0, 1, 1], [1, 1, 2, 0, 1, 2, 1, 2], [2, 1, 0, 2, 0, 0, 1, 1]], + [[0, 2, 1, 1, 1, 1, 2, 2], [0, 2, 2, 2, 2, 2, 1, 1], [1, 2, 2, 2, 2, 2, 1, 1], [2, 1, 1, 2, 1, 1, 2, 2], [2, 1, 1, 1, 2, 1, 2, 2], [0, 1, 1, 1, 1, 1, 2, 0], [0, 1, 1, 1, 1, 1, 0, 2], [0, 1, 1, 1, 1, 2, 2, 2]], + [[2, 1, 0, 0, 1, 1, 0, 2], [1, 0, 0, 0, 2, 2, 0, 1], [2, 2, 1, 2, 0, 0, 1, 2], [1, 1, 2, 2, 0, 0, 2, 1], [1, 0, 0, 0, 2, 1, 0, 2], [2, 2, 1, 1, 0, 0, 2, 2], [0, 1, 1, 2, 0, 0, 2, 1], [2, 0, 0, 0, 1, 2, 0, 2]], + [[1, 2, 0, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0, 2], [2, 2, 2, 2, 0, 1, 1, 0], [2, 1, 1, 0, 0, 0, 0, 2], [2, 1, 0, 1, 0, 0, 0, 2], [1, 1, 0, 0, 0, 0, 0, 2], [0, 1, 1, 1, 2, 2, 0, 0], [0, 1, 1, 1, 2, 0, 2, 0]], + [[2, 2, 2, 0, 1, 0, 0, 0], [1, 2, 1, 0, 2, 0, 0, 0], [0, 2, 1, 2, 2, 1, 2, 0], [1, 1, 2, 0, 2, 0, 0, 0], [0, 1, 2, 1, 1, 0, 1, 0], [2, 2, 1, 0, 1, 0, 0, 1], [2, 1, 2, 0, 1, 0, 1, 0], [1, 2, 2, 0, 1, 2, 1, 1]], + [[1, 2, 0, 0, 0, 0, 1, 0], [2, 2, 0, 0, 0, 0, 2, 0], [2, 2, 2, 2, 1, 1, 0, 0], [2, 1, 1, 0, 0, 0, 2, 0], [2, 1, 0, 1, 0, 0, 2, 0], [0, 2, 0, 0, 2, 0, 2, 1], [1, 1, 0, 0, 0, 0, 2, 0], [0, 2, 0, 0, 0, 2, 2, 1]], + [[2, 2, 2, 0, 0, 1, 0, 0], [1, 2, 1, 0, 0, 2, 0, 0], [0, 2, 1, 0, 2, 2, 1, 2], [1, 1, 2, 0, 0, 2, 0, 0], [0, 1, 2, 0, 1, 1, 0, 1], [2, 1, 2, 2, 1, 1, 0, 1], [1, 1, 0, 2, 1, 1, 2, 2], [2, 1, 2, 0, 0, 1, 0, 1]], + [[1, 2, 0, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0, 2], [2, 2, 2, 0, 2, 1, 1, 0], [2, 1, 1, 0, 0, 0, 0, 2], [2, 1, 0, 0, 1, 0, 0, 2], [0, 1, 1, 2, 1, 2, 0, 0], [0, 1, 1, 2, 1, 0, 2, 0], [1, 1, 0, 0, 0, 0, 0, 2]], + [[0, 2, 1, 2, 0, 2, 1, 2], [0, 2, 2, 1, 0, 1, 2, 1], [2, 2, 1, 2, 0, 0, 2, 1], [2, 1, 1, 2, 1, 2, 1, 2], [1, 1, 2, 2, 0, 0, 1, 2], [2, 2, 1, 1, 0, 0, 2, 2], [0, 1, 1, 2, 0, 0, 1, 2], [1, 2, 2, 1, 2, 1, 0, 1]], + [[0, 1, 2, 2, 0, 1, 1, 0], [2, 0, 2, 2, 0, 2, 1, 0], [0, 0, 2, 2, 1, 1, 1, 0], [2, 0, 2, 2, 0, 1, 2, 0], [0, 0, 1, 1, 0, 2, 2, 0], [0, 2, 0, 1, 1, 1, 1, 1], [0, 0, 2, 2, 0, 1, 1, 1], [1, 0, 1, 1, 0, 2, 2, 0]], + [[0, 0, 1, 2, 2, 1, 1, 0], [2, 0, 0, 2, 2, 2, 1, 0], [0, 2, 1, 2, 0, 1, 1, 0], [2, 0, 0, 2, 2, 1, 2, 0], [0, 0, 0, 1, 1, 2, 2, 0], [0, 2, 0, 0, 2, 1, 1, 1], [1, 0, 0, 1, 1, 2, 2, 0], [0, 0, 0, 2, 2, 1, 1, 1]], + [[2, 2, 2, 1, 2, 0, 1, 0], [0, 2, 2, 2, 2, 2, 2, 0], [2, 1, 2, 2, 2, 0, 1, 0], [0, 1, 1, 2, 1, 1, 2, 1], [2, 2, 2, 1, 2, 0, 1, 2], [2, 1, 2, 2, 1, 0, 2, 0], [2, 2, 1, 1, 2, 0, 2, 0], [2, 2, 1, 2, 1, 0, 2, 0]], + [[0, 2, 1, 2, 1, 1, 1, 2], [2, 2, 0, 2, 2, 1, 1, 2], [0, 1, 1, 0, 1, 1, 1, 2], [2, 2, 0, 2, 1, 2, 1, 2], [0, 1, 0, 1, 2, 2, 2, 1], [1, 1, 0, 1, 2, 2, 2, 1], [0, 2, 0, 2, 1, 1, 1, 0], [0, 2, 0, 2, 1, 1, 2, 2]], + [[0, 1, 2, 0, 2, 1, 0, 1], [2, 0, 2, 0, 2, 2, 0, 1], [0, 0, 2, 1, 2, 1, 0, 1], [0, 0, 1, 0, 1, 2, 0, 2], [2, 0, 2, 0, 2, 1, 0, 2], [0, 2, 0, 1, 1, 1, 1, 1], [0, 0, 2, 0, 2, 1, 1, 1], [1, 0, 1, 0, 1, 2, 0, 2]], + [[0, 2, 1, 1, 1, 2, 2, 1], [1, 2, 1, 1, 2, 2, 2, 1], [0, 1, 1, 2, 1, 2, 2, 1], [0, 2, 2, 2, 2, 1, 1, 2], [0, 1, 0, 2, 2, 1, 1, 2], [2, 1, 2, 2, 1, 1, 2, 2], [0, 1, 1, 1, 1, 2, 2, 2], [2, 1, 2, 2, 1, 2, 1, 2]], + [[0, 1, 2, 0, 2, 1, 0, 1], [2, 0, 2, 0, 2, 2, 0, 1], [0, 0, 2, 1, 2, 1, 0, 1], [0, 0, 1, 0, 1, 2, 0, 2], [2, 0, 2, 0, 2, 1, 0, 2], [0, 1, 1, 2, 0, 1, 1, 1], [1, 0, 1, 0, 1, 2, 0, 2], [0, 0, 2, 0, 2, 1, 1, 1]], + [[0, 0, 0, 1, 1, 2, 2, 1], [1, 0, 0, 2, 1, 2, 2, 1], [0, 0, 2, 2, 1, 2, 2, 1], [0, 1, 0, 2, 2, 1, 1, 2], [0, 0, 1, 1, 0, 1, 1, 2], [2, 0, 0, 1, 2, 1, 2, 2], [2, 0, 0, 1, 2, 2, 1, 2], [0, 2, 0, 1, 1, 2, 2, 2]], + [[0, 1, 2, 0, 2, 1, 0, 1], [2, 0, 2, 0, 2, 2, 0, 1], [0, 0, 2, 1, 2, 1, 0, 1], [0, 0, 1, 0, 1, 2, 0, 2], [2, 0, 2, 0, 2, 1, 0, 2], [1, 0, 1, 0, 1, 2, 0, 2], [0, 1, 1, 2, 0, 1, 1, 1], [0, 0, 2, 0, 2, 1, 1, 1]], + [[0, 1, 1, 1, 2, 1, 2, 2], [0, 0, 2, 2, 1, 2, 1, 1], [0, 0, 1, 1, 0, 1, 2, 2], [1, 0, 1, 2, 0, 1, 2, 2], [0, 2, 0, 2, 1, 2, 1, 1], [0, 0, 1, 1, 2, 2, 2, 2], [2, 0, 2, 1, 0, 2, 1, 2], [2, 0, 2, 1, 0, 2, 2, 1]], + [[1, 2, 0, 1, 1, 0, 0, 2], [2, 2, 0, 2, 2, 0, 0, 1], [1, 1, 1, 1, 1, 0, 0, 2], [0, 1, 0, 1, 1, 0, 1, 2], [1, 0, 2, 1, 0, 2, 2, 1], [1, 1, 0, 1, 1, 1, 0, 2], [1, 1, 0, 1, 2, 0, 0, 2], [0, 2, 0, 2, 2, 0, 0, 1]], + [[0, 0, 0, 1, 1, 1, 2, 2], [0, 1, 0, 2, 2, 2, 1, 1], [0, 2, 1, 1, 1, 1, 2, 2], [1, 0, 0, 2, 1, 1, 2, 2], [0, 1, 2, 2, 0, 2, 1, 1], [2, 0, 0, 1, 2, 2, 1, 2], [0, 2, 0, 1, 1, 2, 2, 2], [2, 0, 0, 1, 2, 2, 2, 1]], + [[1, 1, 0, 1, 1, 1, 0, 2], [2, 0, 0, 2, 2, 2, 0, 1], [1, 0, 0, 1, 2, 1, 0, 2], [0, 0, 0, 1, 1, 1, 1, 2], [1, 2, 1, 0, 0, 2, 2, 1], [1, 0, 2, 2, 1, 2, 0, 2], [0, 0, 0, 2, 2, 2, 0, 1], [1, 0, 0, 1, 1, 2, 0, 2]], + [[0, 0, 2, 1, 2, 1, 2, 2], [0, 1, 1, 2, 1, 2, 1, 1], [0, 0, 1, 1, 0, 1, 2, 2], [1, 0, 2, 1, 0, 1, 2, 2], [0, 0, 1, 0, 1, 2, 1, 1], [2, 0, 1, 2, 0, 2, 1, 2], [2, 0, 1, 2, 0, 2, 2, 1], [0, 2, 2, 1, 2, 2, 2, 2]], + [[1, 2, 0, 1, 0, 1, 2, 0], [2, 2, 0, 2, 0, 2, 1, 0], [1, 1, 1, 1, 0, 1, 2, 0], [0, 1, 0, 1, 0, 1, 2, 1], [1, 0, 2, 1, 2, 0, 1, 2], [0, 2, 0, 2, 0, 2, 1, 0], [1, 1, 0, 1, 0, 2, 2, 0], [1, 1, 0, 1, 1, 1, 2, 0]], + [[0, 1, 1, 1, 2, 1, 2, 2], [0, 0, 2, 2, 1, 2, 1, 1], [0, 0, 1, 1, 0, 1, 2, 2], [0, 2, 0, 2, 1, 2, 1, 1], [1, 0, 1, 2, 0, 1, 2, 2], [0, 0, 1, 1, 2, 2, 2, 2], [2, 0, 2, 1, 0, 2, 1, 2], [2, 0, 2, 1, 0, 2, 2, 1]], + [[1, 2, 0, 0, 1, 0, 0, 0], [2, 2, 0, 0, 2, 0, 0, 0], [1, 1, 0, 0, 2, 0, 0, 0], [2, 1, 1, 0, 2, 0, 0, 0], [2, 1, 0, 1, 2, 0, 0, 0], [2, 2, 0, 0, 1, 0, 0, 2], [0, 2, 2, 2, 1, 1, 1, 1], [0, 2, 0, 0, 2, 1, 2, 0]], + [[0, 0, 1, 1, 1, 0, 2, 2], [0, 1, 2, 2, 2, 0, 1, 1], [0, 2, 2, 1, 2, 2, 2, 2], [0, 1, 2, 2, 1, 1, 1, 1], [1, 0, 1, 2, 1, 0, 2, 2], [2, 0, 2, 1, 2, 0, 1, 2], [0, 2, 1, 1, 2, 0, 2, 2], [2, 0, 2, 1, 2, 0, 2, 1]], + [[0, 2, 1, 2, 0, 1, 2, 2], [1, 0, 0, 2, 1, 0, 2, 1], [2, 1, 0, 1, 2, 0, 1, 2], [1, 2, 1, 2, 1, 0, 2, 1], [1, 2, 0, 2, 1, 1, 2, 1], [2, 0, 0, 1, 1, 0, 2, 0], [2, 0, 0, 1, 2, 0, 1, 0], [2, 0, 0, 2, 1, 0, 1, 0]], + [[2, 2, 2, 0, 0, 1, 1, 1], [1, 2, 1, 0, 0, 2, 2, 2], [0, 1, 2, 2, 1, 2, 0, 2], [1, 1, 2, 0, 0, 2, 2, 2], [1, 1, 1, 0, 1, 2, 2, 2], [2, 1, 2, 2, 0, 2, 2, 1], [2, 2, 1, 0, 0, 1, 1, 2], [2, 1, 2, 0, 0, 1, 2, 1]], + [[1, 2, 2, 0, 0, 0, 0, 0], [0, 2, 2, 2, 1, 1, 0, 1], [1, 1, 2, 1, 0, 0, 0, 0], [2, 2, 1, 0, 0, 0, 0, 0], [2, 1, 2, 0, 0, 0, 0, 0], [1, 1, 2, 0, 2, 1, 1, 0], [1, 1, 2, 0, 0, 0, 0, 1], [1, 1, 2, 0, 0, 0, 1, 0]], + [[1, 2, 0, 2, 0, 0, 0, 0], [2, 2, 0, 1, 0, 0, 0, 0], [1, 1, 0, 2, 0, 1, 0, 0], [0, 1, 0, 2, 1, 0, 1, 1], [2, 1, 0, 2, 0, 0, 0, 0], [1, 1, 2, 2, 1, 0, 0, 1], [1, 2, 2, 2, 0, 2, 1, 1], [1, 1, 0, 2, 0, 0, 0, 1]], + [[2, 0, 2, 2, 1, 0, 1, 1], [1, 0, 2, 2, 2, 0, 1, 2], [2, 0, 1, 2, 1, 0, 2, 1], [1, 1, 1, 1, 2, 0, 2, 2], [1, 0, 2, 1, 2, 1, 1, 2], [2, 0, 1, 1, 1, 0, 2, 2], [2, 0, 1, 1, 2, 0, 1, 2], [0, 1, 1, 1, 2, 1, 1, 0]], + [[2, 2, 0, 0, 0, 0, 1, 1], [1, 2, 0, 0, 0, 0, 2, 2], [2, 2, 2, 0, 0, 0, 2, 1], [1, 1, 1, 0, 0, 1, 1, 2], [1, 1, 0, 1, 0, 0, 2, 2], [2, 1, 0, 0, 0, 0, 1, 2], [0, 1, 1, 1, 2, 1, 1, 0], [2, 1, 1, 0, 2, 0, 1, 2]], + [[1, 2, 2, 0, 0, 0, 0, 0], [2, 2, 1, 0, 0, 0, 0, 0], [1, 1, 2, 0, 1, 0, 0, 0], [2, 1, 2, 0, 0, 0, 0, 0], [0, 1, 2, 1, 0, 0, 1, 1], [1, 0, 2, 1, 1, 2, 0, 1], [1, 1, 2, 0, 0, 2, 1, 1], [1, 1, 2, 0, 0, 0, 0, 1]], + [[2, 2, 0, 0, 2, 1, 1, 1], [1, 2, 0, 0, 2, 1, 2, 2], [2, 1, 0, 0, 2, 2, 1, 1], [1, 2, 0, 0, 1, 2, 2, 2], [1, 1, 0, 1, 1, 2, 2, 2], [0, 2, 2, 1, 1, 2, 2, 0], [2, 2, 2, 0, 1, 1, 2, 2], [2, 1, 0, 0, 1, 2, 1, 2]], + [[0, 0, 0, 0, 2, 0, 2, 0], [0, 1, 0, 0, 1, 0, 1, 0], [2, 0, 0, 0, 2, 0, 2, 0], [0, 0, 1, 0, 1, 0, 1, 0], [0, 0, 0, 0, 2, 0, 1, 0], [1, 0, 0, 0, 1, 0, 1, 2], [1, 1, 1, 2, 1, 2, 0, 0], [1, 0, 0, 1, 1, 2, 1, 2]], + [[2, 2, 2, 2, 1, 2, 2, 2], [2, 2, 2, 2, 2, 1, 1, 2], [0, 2, 1, 2, 1, 2, 1, 1], [1, 2, 1, 2, 1, 1, 1, 1], [1, 2, 1, 1, 1, 2, 1, 1], [0, 1, 2, 1, 1, 2, 2, 1], [0, 2, 1, 2, 1, 1, 1, 2], [0, 2, 1, 1, 1, 2, 2, 1]], + [[2, 2, 0, 2, 0, 1, 1, 1], [1, 1, 1, 1, 1, 2, 1, 2], [0, 1, 1, 1, 1, 2, 2, 2], [2, 2, 0, 2, 0, 2, 0, 0], [1, 1, 1, 1, 0, 2, 2, 2], [0, 1, 0, 2, 0, 1, 0, 0], [0, 1, 1, 1, 0, 2, 2, 0], [0, 2, 0, 1, 0, 1, 0, 0]], + [[0, 0, 0, 2, 0, 0, 0, 2], [0, 1, 0, 1, 0, 0, 0, 1], [1, 2, 1, 1, 2, 2, 2, 0], [0, 0, 1, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 1], [1, 0, 0, 1, 0, 2, 0, 1], [1, 0, 0, 1, 0, 0, 2, 1], [2, 0, 0, 2, 0, 0, 0, 2]], + [[0, 0, 0, 2, 0, 0, 0, 2], [0, 1, 0, 1, 0, 0, 0, 1], [1, 1, 0, 1, 2, 1, 2, 0], [0, 0, 1, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 1], [1, 0, 0, 1, 0, 0, 2, 1], [2, 0, 0, 2, 0, 0, 0, 2], [1, 0, 1, 1, 2, 2, 0, 1]], + [[2, 0, 2, 2, 0, 0, 2, 1], [1, 1, 1, 1, 1, 2, 1, 2], [0, 1, 1, 1, 1, 0, 1, 2], [1, 1, 1, 1, 0, 0, 1, 2], [2, 0, 2, 2, 0, 0, 2, 0], [0, 0, 1, 2, 0, 0, 1, 0], [0, 1, 1, 1, 0, 2, 2, 0], [0, 0, 2, 1, 0, 0, 1, 0]], + [[0, 0, 0, 2, 0, 0, 0, 2], [0, 1, 0, 1, 0, 0, 0, 1], [1, 2, 1, 1, 2, 2, 2, 0], [0, 0, 1, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 1], [2, 0, 0, 2, 0, 0, 0, 2], [1, 0, 0, 1, 0, 2, 0, 1], [1, 0, 0, 1, 0, 0, 2, 1]], + [[0, 1, 1, 1, 1, 1, 0, 2], [2, 2, 0, 2, 0, 2, 0, 0], [2, 2, 0, 2, 0, 1, 1, 1], [1, 1, 1, 1, 1, 1, 2, 2], [1, 1, 1, 1, 0, 1, 0, 2], [0, 1, 0, 2, 0, 1, 0, 0], [0, 1, 1, 1, 0, 1, 0, 0], [0, 2, 0, 1, 0, 1, 0, 0]], + [[1, 1, 2, 1, 2, 2, 2, 0], [0, 1, 0, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 2], [0, 0, 1, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 1], [1, 0, 0, 1, 0, 2, 0, 1], [1, 0, 0, 1, 0, 0, 2, 1], [2, 0, 0, 2, 0, 0, 0, 2]], + [[1, 0, 1, 1, 2, 1, 2, 0], [0, 1, 0, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 2], [0, 0, 1, 1, 0, 0, 0, 1], [0, 0, 0, 2, 0, 0, 0, 1], [1, 0, 0, 1, 0, 0, 2, 1], [2, 0, 0, 2, 0, 0, 0, 2], [1, 1, 0, 1, 2, 2, 0, 1]], + [[0, 0, 1, 1, 1, 1, 1, 2], [1, 0, 1, 1, 1, 1, 0, 2], [2, 1, 2, 2, 2, 0, 2, 1], [1, 0, 1, 1, 1, 0, 1, 2], [2, 1, 2, 2, 2, 0, 2, 0], [0, 2, 1, 1, 2, 0, 1, 0], [0, 2, 1, 2, 1, 0, 1, 0], [0, 2, 2, 1, 1, 0, 1, 0]], + [[1, 1, 0, 2, 1, 1, 2, 0], [0, 1, 0, 0, 1, 0, 0, 1], [0, 0, 0, 0, 2, 0, 0, 2], [0, 0, 1, 0, 1, 0, 0, 1], [0, 0, 0, 0, 2, 0, 0, 1], [2, 0, 0, 0, 2, 0, 0, 2], [1, 0, 0, 0, 1, 0, 2, 1], [1, 0, 1, 2, 1, 2, 0, 1]], + [[1, 2, 0, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 2], [1, 2, 0, 0, 0, 0, 0, 1], [0, 0, 1, 2, 2, 2, 1, 1], [1, 1, 0, 0, 0, 1, 0, 2], [1, 1, 0, 0, 1, 0, 0, 2], [1, 1, 0, 1, 0, 0, 0, 2]], + [[2, 2, 1, 2, 0, 1, 0, 1], [1, 2, 2, 1, 0, 2, 0, 2], [2, 1, 2, 2, 0, 1, 0, 1], [2, 1, 2, 2, 0, 1, 2, 1], [2, 2, 1, 2, 2, 1, 0, 1], [2, 2, 1, 1, 0, 1, 0, 2], [2, 1, 2, 1, 0, 2, 0, 1], [0, 2, 2, 0, 1, 2, 1, 2]], + [[2, 2, 1, 0, 2, 0, 1, 1], [1, 2, 2, 0, 2, 0, 2, 1], [2, 2, 1, 0, 1, 0, 1, 2], [2, 2, 1, 0, 1, 0, 1, 1], [2, 2, 1, 0, 1, 2, 1, 2], [2, 1, 2, 0, 1, 0, 1, 2], [0, 2, 2, 2, 0, 1, 2, 1], [2, 2, 1, 2, 2, 0, 2, 1]], + [[1, 2, 0, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 0, 1], [1, 1, 1, 0, 0, 0, 0, 2], [0, 0, 1, 2, 2, 2, 1, 1], [1, 2, 0, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 1, 0, 2], [1, 1, 0, 0, 1, 0, 0, 2], [1, 1, 0, 1, 0, 0, 0, 2]], + [[2, 2, 0, 1, 0, 0, 0, 1], [1, 2, 0, 2, 0, 0, 0, 2], [2, 1, 1, 1, 0, 0, 0, 1], [2, 2, 0, 1, 0, 0, 2, 1], [2, 2, 0, 1, 0, 2, 0, 1], [0, 1, 1, 2, 2, 1, 1, 2], [2, 1, 0, 2, 0, 0, 0, 1], [2, 2, 0, 1, 2, 0, 0, 2]], + [[2, 2, 1, 0, 2, 1, 0, 1], [2, 2, 2, 2, 1, 1, 0, 1], [2, 1, 2, 0, 2, 1, 0, 1], [1, 2, 2, 0, 1, 2, 0, 2], [2, 1, 2, 0, 2, 1, 2, 1], [2, 1, 2, 0, 1, 2, 0, 1], [2, 2, 1, 0, 1, 1, 0, 2], [0, 2, 1, 1, 1, 2, 1, 2]], + [[2, 1, 1, 1, 1, 0, 1, 2], [2, 2, 0, 1, 0, 0, 1, 2], [2, 2, 0, 1, 0, 0, 1, 0], [1, 2, 0, 2, 0, 0, 2, 0], [2, 1, 1, 1, 1, 2, 1, 2], [2, 1, 0, 2, 0, 0, 1, 0], [0, 2, 0, 2, 2, 1, 2, 1], [2, 2, 0, 1, 2, 0, 2, 0]], + [[1, 2, 0, 0, 0, 0, 0, 2], [0, 0, 1, 2, 2, 2, 1, 1], [1, 1, 1, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 1, 0, 2], [1, 1, 0, 0, 1, 0, 0, 2], [1, 1, 0, 1, 0, 0, 0, 2]], + [[2, 1, 1, 1, 0, 0, 1, 0], [2, 1, 2, 1, 2, 2, 1, 0], [2, 0, 2, 1, 0, 0, 1, 0], [1, 0, 2, 2, 0, 0, 2, 0], [2, 0, 2, 1, 0, 0, 1, 2], [0, 0, 1, 2, 1, 0, 2, 1], [2, 0, 1, 2, 0, 0, 1, 0], [2, 0, 2, 1, 0, 2, 2, 0]], + [[1, 1, 1, 1, 1, 1, 2, 0], [0, 2, 2, 1, 0, 0, 0, 1], [1, 2, 1, 1, 0, 0, 2, 1], [0, 2, 1, 2, 0, 0, 0, 1], [0, 2, 1, 1, 1, 0, 0, 1], [1, 2, 1, 1, 0, 2, 0, 1], [2, 1, 2, 2, 0, 0, 0, 2], [0, 1, 2, 2, 0, 0, 0, 2]], + [[0, 1, 2, 0, 2, 1, 1, 0], [1, 1, 0, 2, 1, 1, 1, 0], [0, 0, 0, 0, 2, 1, 1, 0], [1, 0, 0, 0, 2, 1, 1, 2], [2, 0, 1, 0, 1, 2, 2, 0], [0, 0, 0, 0, 1, 1, 2, 0], [0, 0, 0, 0, 1, 2, 1, 0], [2, 0, 0, 1, 1, 2, 2, 1]], + [[1, 0, 1, 1, 1, 1, 1, 2], [0, 2, 2, 2, 1, 1, 1, 0], [1, 2, 2, 1, 1, 1, 1, 2], [0, 2, 2, 1, 2, 1, 1, 0], [0, 2, 2, 1, 1, 2, 1, 0], [2, 1, 1, 2, 2, 2, 2, 0], [1, 2, 2, 1, 1, 1, 0, 0], [0, 1, 1, 2, 2, 2, 2, 0]], + [[0, 0, 2, 1, 2, 0, 1, 1], [1, 1, 1, 1, 1, 0, 1, 1], [0, 1, 1, 1, 1, 0, 2, 1], [1, 0, 2, 1, 2, 2, 1, 1], [2, 0, 2, 2, 2, 0, 1, 2], [0, 0, 1, 2, 1, 0, 2, 1], [2, 0, 2, 2, 1, 1, 2, 2], [0, 0, 2, 1, 1, 0, 1, 2]], + [[1, 1, 1, 1, 1, 1, 2, 0], [0, 2, 2, 0, 1, 0, 0, 1], [1, 2, 1, 0, 1, 0, 2, 1], [0, 2, 1, 1, 1, 0, 0, 1], [0, 2, 1, 0, 2, 0, 0, 1], [2, 1, 2, 0, 2, 0, 0, 2], [0, 1, 2, 0, 2, 0, 0, 2], [1, 2, 1, 0, 1, 2, 0, 1]]] + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data5.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data5.lean new file mode 100644 index 0000000000..8512e17be9 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Data5.lean @@ -0,0 +1,80 @@ +/-! Generated by Matarener/Internal local-topology-2026-10-27/e8hand/gen_lean_step5.py. Step 5 (signs) data for +the frame number 0: trees (index 8 * s + s'; per port [parent, depth]), triangle witnesses, first support. -/ + +namespace CarrierCode.E8 + +def fT : Nat := 0 + +def treeData : List (List (List Nat)) := [ + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [74, 3], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [29, 2], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [80, 2], [29, 2], [80, 2], [74, 3], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [28, 2], [0, 0], [28, 2], [0, 0], [43, 3], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [28, 2], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [28, 2], [0, 0], [29, 2], [0, 0], [28, 2], [0, 0], [28, 2], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 3], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [80, 3], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 2], [12, 2], [74, 2], [0, 0], [0, 0], [0, 0], [0, 0], [80, 3], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [74, 2], [12, 2], [74, 2], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [12, 2], [0, 0], [46, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [11, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [46, 3], [0, 0], [11, 2], [0, 0], [11, 2], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [11, 2], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [46, 3], [0, 0], [11, 2], [0, 0], [0, 0], [12, 2], [11, 2], [0, 0], [11, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [46, 3], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [61, 2], [0, 0], [22, 2], [4, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [22, 2], [0, 0], [0, 0], [61, 2], [0, 0], [22, 2], [0, 0], [22, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [4, 3], [0, 0], [0, 0], [61, 2], [0, 0], [0, 0], [0, 0], [0, 0], [22, 2], [0, 0], [22, 2], [0, 0], [0, 0], [0, 0], [0, 0], [61, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 3], [1, 1], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [85, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [74, 3], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [85, 2], [49, 2], [85, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [49, 2], [49, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [49, 2], [49, 2], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [74, 3], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [4, 1], [29, 2], [0, 0], [4, 1], [12, 2], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [43, 3], [29, 2], [0, 0], [4, 1], [12, 2], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [74, 3], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [29, 2], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [80, 2], [29, 2], [80, 2], [74, 3], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 0], [0, 0], [43, 2], [0, 0], [0, 0], [0, 0], [0, 0], [43, 2], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 2], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [7, 1], [39, 2], [0, 0], [43, 2], [0, 0], [0, 0], [39, 2], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [29, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 3], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [85, 3], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 2], [15, 2], [74, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [85, 3], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [74, 2], [15, 2], [74, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [85, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [57, 3], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [57, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [57, 3], [0, 0], [57, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [7, 2], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [34, 2], [9, 2], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [34, 2], [0, 0], [9, 2], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [34, 2], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [34, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 0], [80, 2], [14, 2], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [8, 1], [74, 3], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [0, 0], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [14, 2], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [8, 1], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 0], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [29, 2], [43, 3], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [8, 1], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 3], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [28, 2], [0, 0], [28, 2], [0, 0], [43, 3], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [28, 2], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [28, 2], [0, 0], [29, 2], [0, 0], [28, 2], [0, 0], [28, 2], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 3], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 0], [0, 0], [43, 2], [0, 0], [0, 0], [0, 0], [0, 0], [43, 2], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 2], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [7, 1], [39, 2], [0, 0], [43, 2], [0, 0], [0, 0], [39, 2], [0, 0], [39, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [29, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 3], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [2, 1], [0, 0], [2, 1], [53, 3], [2, 1], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [53, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [53, 3], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [16, 2], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [33, 2], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [25, 2], [0, 0], [19, 3], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [14, 2], [0, 0], [14, 2], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [3, 1], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [25, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [0, 0], [14, 2], [0, 0], [14, 2], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [25, 2], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [14, 2], [0, 0], [0, 0], [0, 0], [25, 2], [0, 0], [3, 1], [0, 0], [3, 1], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 0], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [29, 2], [0, 0], [19, 1], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [19, 1], [0, 0], [102, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [102, 2], [0, 0], [19, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 1], [0, 0], [102, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [29, 2], [19, 1], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [80, 3], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 2], [12, 2], [74, 2], [0, 0], [0, 0], [0, 0], [0, 0], [80, 3], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [74, 2], [12, 2], [74, 2], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [85, 3], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 2], [15, 2], [74, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [85, 3], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [74, 2], [15, 2], [74, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [85, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [2, 1], [0, 0], [2, 1], [53, 3], [2, 1], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [53, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [53, 3], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [16, 2], [0, 0], [0, 0], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [16, 2], [0, 0], [16, 2], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [7, 1], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [40, 3], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [40, 3], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [40, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [7, 1], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [0, 0], [2, 1], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [20, 2], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 0], [80, 2], [26, 2], [0, 0], [0, 0], [0, 0], [74, 3], [19, 1], [74, 3], [0, 0], [0, 0], [0, 0], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [19, 1], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [0, 0], [0, 0], [0, 0], [0, 0], [19, 1], [19, 1], [0, 0], [0, 0], [0, 0], [0, 0], [19, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [80, 2], [26, 2], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 0], [19, 3], [0, 0], [21, 2], [0, 0], [12, 1], [0, 0], [17, 2], [0, 0], [12, 1], [0, 0], [0, 0], [0, 0], [12, 1], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 1], [21, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [12, 1], [0, 0], [0, 0], [21, 2], [0, 0], [12, 1], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [19, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [19, 3], [0, 0], [0, 0], [21, 2], [0, 0], [12, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [12, 1], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [12, 2], [0, 0], [46, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [11, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [46, 3], [0, 0], [11, 2], [0, 0], [11, 2], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [11, 2], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [46, 3], [0, 0], [11, 2], [0, 0], [0, 0], [12, 2], [11, 2], [0, 0], [11, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [46, 3], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [57, 3], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [57, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [57, 3], [0, 0], [57, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [7, 2], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [7, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 2], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [7, 1], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [40, 3], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [40, 3], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [40, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [7, 1], [0, 0], [0, 0], [7, 1], [0, 0], [7, 1], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [33, 3], [102, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [102, 2], [0, 0], [20, 2], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [20, 2], [102, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [3, 1], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [26, 3], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 3], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [26, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [0, 0], [3, 1], [0, 0], [3, 1], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 0], [0, 0], [33, 3], [0, 0], [42, 2], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [13, 2], [0, 0], [0, 0], [33, 3], [0, 0], [13, 2], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [42, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [42, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [13, 2], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [13, 2], [0, 0]], + [[0, 0], [1, 0], [61, 2], [0, 0], [22, 2], [4, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [22, 2], [0, 0], [0, 0], [61, 2], [0, 0], [22, 2], [0, 0], [22, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [4, 3], [0, 0], [0, 0], [61, 2], [0, 0], [0, 0], [0, 0], [0, 0], [22, 2], [0, 0], [22, 2], [0, 0], [0, 0], [0, 0], [0, 0], [61, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 3], [1, 1], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [34, 2], [9, 2], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [34, 2], [0, 0], [9, 2], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [34, 2], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [15, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [34, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [33, 2], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 3], [0, 0], [0, 0], [33, 2], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0]], + [[0, 0], [0, 0], [2, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [0, 0], [2, 1], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [20, 2], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [31, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [2, 1], [0, 0], [2, 1], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0]], + [[0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [33, 3], [102, 2], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [102, 2], [0, 0], [20, 2], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [20, 2], [102, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [0, 0], [26, 2], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [20, 3], [0, 0], [20, 3], [0, 0], [0, 0], [9, 2], [0, 0], [26, 2], [0, 0], [0, 0], [0, 0], [0, 0], [20, 3], [0, 0], [20, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [9, 2], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [42, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [4, 1], [42, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 2], [0, 0], [4, 1], [33, 3], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [42, 2], [0, 0], [0, 0], [33, 3], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [85, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [74, 3], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [85, 2], [49, 2], [85, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [49, 2], [49, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [49, 2], [49, 2], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [74, 3], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 0], [80, 2], [14, 2], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [8, 1], [74, 3], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [0, 0], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [14, 2], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [8, 1], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [25, 2], [0, 0], [19, 3], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [14, 2], [0, 0], [14, 2], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [3, 1], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [25, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [0, 0], [14, 2], [0, 0], [14, 2], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [25, 2], [14, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [14, 2], [0, 0], [0, 0], [0, 0], [25, 2], [0, 0], [3, 1], [0, 0], [3, 1], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 0], [80, 2], [26, 2], [0, 0], [0, 0], [0, 0], [74, 3], [19, 1], [74, 3], [0, 0], [0, 0], [0, 0], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [80, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [74, 3], [19, 1], [74, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [0, 0], [0, 0], [0, 0], [0, 0], [19, 1], [19, 1], [0, 0], [0, 0], [0, 0], [0, 0], [19, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [80, 2], [26, 2], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [3, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [3, 1], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [26, 3], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [0, 0], [0, 0], [20, 2], [0, 0], [20, 2], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 3], [0, 0], [0, 0], [0, 0], [3, 1], [0, 0], [0, 0], [20, 2], [0, 0], [0, 0], [0, 0], [0, 0], [26, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [0, 0], [3, 1], [0, 0], [3, 1], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [0, 0], [26, 2], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [20, 3], [0, 0], [20, 3], [0, 0], [0, 0], [9, 2], [0, 0], [26, 2], [0, 0], [0, 0], [0, 0], [0, 0], [20, 3], [0, 0], [20, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [26, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [9, 2], [0, 0], [9, 2], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [21, 3], [0, 0], [8, 2], [0, 0], [8, 2], [0, 0], [4, 1], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [21, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [21, 3], [0, 0], [8, 2], [0, 0], [4, 1], [0, 0], [19, 2], [4, 1], [0, 0], [8, 2], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [4, 1], [29, 2], [0, 0], [4, 1], [12, 2], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [43, 3], [29, 2], [0, 0], [4, 1], [12, 2], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 2], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 0], [0, 0], [43, 3], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [29, 2], [43, 3], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [8, 1], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [43, 3], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 0], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [29, 2], [0, 0], [19, 1], [0, 0], [0, 0], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [29, 2], [19, 1], [0, 0], [102, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [29, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [102, 2], [0, 0], [19, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 1], [0, 0], [102, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [29, 2], [19, 1], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 0], [19, 3], [0, 0], [21, 2], [0, 0], [12, 1], [0, 0], [17, 2], [0, 0], [12, 1], [0, 0], [0, 0], [0, 0], [12, 1], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [12, 1], [21, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [19, 3], [0, 0], [17, 2], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [12, 1], [0, 0], [0, 0], [21, 2], [0, 0], [12, 1], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [19, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [19, 3], [0, 0], [0, 0], [21, 2], [0, 0], [12, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [17, 2], [0, 0], [12, 1], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 0], [0, 0], [33, 3], [0, 0], [42, 2], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [13, 2], [0, 0], [0, 0], [33, 3], [0, 0], [13, 2], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [42, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [8, 1], [0, 0], [42, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 2], [0, 0], [8, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [13, 2], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [13, 2], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [42, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [4, 1], [42, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [15, 2], [0, 0], [33, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [42, 2], [0, 0], [4, 1], [33, 3], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [42, 2], [0, 0], [0, 0], [33, 3], [0, 0], [15, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [4, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [8, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [4, 1], [0, 0], [19, 2], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [21, 3], [0, 0], [8, 2], [0, 0], [8, 2], [0, 0], [4, 1], [0, 0], [4, 1], [0, 0], [0, 0], [0, 0], [8, 2], [0, 0], [21, 3], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [21, 3], [0, 0], [8, 2], [0, 0], [4, 1], [0, 0], [19, 2], [4, 1], [0, 0], [8, 2], [0, 0], [0, 0]], + [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]] + +def rootData5 : List Nat := [0, 1, 2, 2, 1, 1, 3, 4, 1, 0, 7, 7, 1, 1, 8, 8, 2, 7, 0, 2, 3, 2, 3, 19, 2, 7, 2, 0, 7, 2, 19, 12, 1, 1, 3, 7, 0, 1, 3, 8, 1, 1, 2, 2, 1, 0, 4, 4, 3, 8, 3, 19, 3, 4, 0, 4, 4, 8, 19, 12, 8, 4, 4, 0] + +def triData : List Nat := [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 74, 1, 1, 74, 29, 0, 29, 0, 2, 3, 2, 3, 29, 0, 74, 2, 0, 12, 2, 74, 12, 0, 1, 3, 12, 0, 1, 3, 12, 0, 1, 2, 2, 1, 0, 4, 4, 0, 74, 3, 74, 3, 4, 0, 4, 0, 29, 29, 12, 12, 4, 4, 0] + +def sup0Data : List Nat := [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 2, 0, 1, 3, 2, 3, 2, 0, 0, 0, 3, 4, 2, 1, 1, 1, 1, 1, 1, 3, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 3, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 2, 2, 7] + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs.lean new file mode 100644 index 0000000000..a411c0a766 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs.lean @@ -0,0 +1,117 @@ +import Mathlib +import CarrierCode.E8Data +import CarrierCode.E8Cert + +/-! +# Concrete data layer for the E8 proof + +Roots of the ports mod 3 (D8 coordinates), frames, and step-3 certificates are stored as lists of naturals so that +the kernel checks them quickly (`decide +kernel`, no `native_decide`). This file defines the list functions and +their `ZMod 3` / `Fin` counterparts, and proves the bridge lemmas. +-/ + +namespace CarrierCode.E8 + +open Matrix + +abbrev ι := Fin 104 + +def rL (i : ℕ) : List ℕ := rootData.getD i [] +def rv (i : ℕ) (k : ℕ) : ℕ := (rL i).getD k 0 +def dotW (i : ℕ) (w : List ℕ) : ℕ := + rv i 0 * w.getD 0 0 + rv i 1 * w.getD 1 0 + rv i 2 * w.getD 2 0 + rv i 3 * w.getD 3 0 + + rv i 4 * w.getD 4 0 + rv i 5 * w.getD 5 0 + rv i 6 * w.getD 6 0 + rv i 7 * w.getD 7 0 +def dotN (i j : ℕ) : ℕ := dotW i (rL j) +def frL (f : ℕ) : List ℕ := frameData.getD f [] +def frN (f k : ℕ) : ℕ := (frL f).getD k 0 + +/-- a list of naturals as a vector of `F₃⁸` -/ +def vec (w : List ℕ) : Fin 8 → ZMod 3 := fun k => ((w.getD k 0 : ℕ) : ZMod 3) +/-- the root of port `i` mod 3 -/ +def r (i : ℕ) : Fin 8 → ZMod 3 := vec (rL i) + +theorem dotW_cast (i : ℕ) (w : List ℕ) : ((dotW i w : ℕ) : ZMod 3) = r i ⬝ᵥ vec w := by + simp [dotW, r, vec, rv, dotProduct, Fin.sum_univ_eight] + +theorem dotN_cast (i j : ℕ) : ((dotN i j : ℕ) : ZMod 3) = r i ⬝ᵥ r j := dotW_cast i (rL j) + +theorem cast_eq_zero_iff (n : ℕ) : ((n : ℕ) : ZMod 3) = 0 ↔ n % 3 = 0 := by + rw [ZMod.natCast_eq_zero_iff]; exact Nat.dvd_iff_mod_eq_zero + +theorem cast_mod (n : ℕ) : ((n % 3 : ℕ) : ZMod 3) = (n : ZMod 3) := ZMod.natCast_mod n 3 + +/-- ports as elements of `ι` -/ +def toι (a : ℕ) : ι := ⟨a % 104, Nat.mod_lt _ (by norm_num)⟩ + +theorem toι_val {a : ℕ} (h : a < 104) : (toι a).val = a := Nat.mod_eq_of_lt h + +/-- frames as maps `Fin 8 → ι` -/ +def fr (f : ℕ) (k : Fin 8) : ι := toι (frN f k) + +/-- The Gram form mod 3. -/ +def Gm (i j : ι) : ZMod 3 := r i ⬝ᵥ r j + +theorem Gm_comm (i j : ι) : Gm i j = Gm j i := dotProduct_comm _ _ + +/-- Sum over a list of length 8 as a sum over `Fin 8`. -/ +theorem sum_fin8 (ℓ : List ℕ) (h : ℓ.length = 8) (g : ℕ → ZMod 3) : + ∑ k : Fin 8, g (ℓ.getD k 0) = (ℓ.map g).sum := by + match ℓ, h with + | [a0, a1, a2, a3, a4, a5, a6, a7], _ => simp [Fin.sum_univ_eight]; ring + +/-- Counting form of a list sum. -/ +theorem sum_count (ℓ : List ℕ) (hl : ∀ a ∈ ℓ, a < 104) (h : ι → ZMod 3) : + ∑ i : ι, ((ℓ.count i.val : ℕ) : ZMod 3) * h i = (ℓ.map fun a => h (toι a)).sum := by + induction ℓ with + | nil => simp + | cons a ℓ ih => + have ha : a < 104 := hl a (by simp) + have ih' := ih (fun b hb => hl b (by simp [hb])) + simp only [List.count_cons, List.map_cons, List.sum_cons] + rw [← ih'] + have : ∑ i : ι, (((if (a == i.val) = true then 1 else 0 : ℕ)) : ZMod 3) * h i = h (toι a) := by + rw [Finset.sum_eq_single (toι a)] + · simp [toι_val ha] + · intro b _ hb + have : a ≠ b.val := fun e => hb (Fin.ext (by rw [toι_val ha]; exact e.symm)) + simp [this] + · simp + rw [← this, ← Finset.sum_add_distrib] + refine Finset.sum_congr rfl fun i _ => ?_ + push_cast; ring + +/-! ## Checks (decided by the kernel in `E8Check*.lean`) -/ + +def framesOK : Prop := ∀ f : Fin 759, (frL f).length = 8 ∧ ∀ a b : Fin 8, frN f a < 104 ∧ + (a ≠ b → dotN (frN f a) (frN f b) % 3 = 0 ∧ frN f a ≠ frN f b) + +instance : Decidable framesOK := by unfold framesOK; infer_instance + +def seedL (t : ℕ) : List ℕ := seedData.getD t [] +def seedN (t j : ℕ) : ℕ := (seedL t).getD j 0 +def wL (t j : ℕ) : List ℕ := (wData.getD t []).getD j [] +def combL (t x : ℕ) : List (ℕ × ℕ) := (combData.getD t []).getD x [] +def accL (L : List (ℕ × ℕ)) (i : ℕ) : ℕ := (L.map fun p => p.2 * (frL p.1).count i).sum +def eN (t x j : ℕ) : ℕ := dotN t x * dotW x (wL t j) +def tgt (t x i : ℕ) : ℕ := (if i = x then 1 else 0) + + ((List.range 7).map fun j => if i = seedN t j then 2 * eN t x j else 0).sum + +def seedOK (t : ℕ) : Prop := (seedL t).length = 7 ∧ ∀ i j : Fin 7, seedN t i < 104 ∧ seedN t i ≠ t ∧ + (dotN t (seedN t i) * dotW (seedN t i) (wL t j)) % 3 = (if i = j then 1 else 0) ∧ dotW t (wL t j) % 3 = 0 + +def check3 (t x : ℕ) : Prop := + x = t ∨ dotN t x % 3 = 0 ∨ x ∈ seedL t ∨ + ((∀ p ∈ combL t x, p.1 < 759) ∧ + (∀ i : Fin 104, i.val = t ∨ dotN t i % 3 = 0 ∨ accL (combL t x) i % 3 = tgt t x i % 3) ∧ + (((combL t x).map Prod.snd).sum + 2 * accL (combL t x) t) % 3 = + (1 + ((List.range 7).map fun j => 2 * eN t x j).sum) % 3) + +instance (t : ℕ) : Decidable (seedOK t) := by unfold seedOK; infer_instance +instance (t x : ℕ) : Decidable (check3 t x) := by unfold check3; infer_instance + +/-- All step-3 checks for the ports `t` with `t / 13 = k`. -/ +def step3OK (k : ℕ) : Prop := ∀ t : Fin 104, t.val / 13 = k → seedOK t ∧ ∀ x : Fin 104, check3 t x + +instance (k : ℕ) : Decidable (step3OK k) := by unfold step3OK; infer_instance + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs4.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs4.lean new file mode 100644 index 0000000000..9bbd9ba1ea --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs4.lean @@ -0,0 +1,38 @@ +import CarrierCode.E8Defs +import CarrierCode.E8Data4 + +/-! +# Data layer for step 4 + +For each port `t`, seven A2 triangles `(x, y, a, b)` with `r_y = a r_t + b r_x` (mod 3) and the inverse `C` of the +matrix with rows `r_t, r_x₁, …, r_x₇`. +-/ + +namespace CarrierCode.E8 + +def a2L (t : ℕ) : List ℕ := a2Data.getD t [] +def ax (t i : ℕ) : ℕ := (a2L t).getD (4 * i) 0 +def ay (t i : ℕ) : ℕ := (a2L t).getD (4 * i + 1) 0 +def aa (t i : ℕ) : ℕ := (a2L t).getD (4 * i + 2) 0 +def ab (t i : ℕ) : ℕ := (a2L t).getD (4 * i + 3) 0 +def cL (t k i : ℕ) : ℕ := ((invData.getD t []).getD k []).getD i 0 +/-- rows `r_t, r_x₁, …, r_x₇` -/ +def rowL (t i : ℕ) : List ℕ := if i = 0 then rL t else rL (ax t (i - 1)) + +def tri4 (t i : ℕ) : Prop := + ax t i < 104 ∧ ay t i < 104 ∧ dotN t (ax t i) % 3 ≠ 0 ∧ dotN t (ay t i) % 3 ≠ 0 ∧ + dotN (ax t i) (ay t i) % 3 ≠ 0 ∧ (aa t i = 1 ∨ aa t i = 2) ∧ (ab t i = 1 ∨ ab t i = 2) ∧ + ∀ k : Fin 8, (rv (ay t i) k + 2 * aa t i * rv t k + 2 * ab t i * rv (ax t i) k) % 3 = 0 + +def check4 (t : ℕ) : Prop := + (∀ i : Fin 7, tri4 t i) ∧ + ∀ k l : Fin 8, ((List.range 8).map fun i => cL t k i * (rowL t i).getD l 0).sum % 3 = if k = l then 1 else 0 + +instance (t i : ℕ) : Decidable (tri4 t i) := by unfold tri4; infer_instance +instance (t : ℕ) : Decidable (check4 t) := by unfold check4; infer_instance + +def step4OK : Prop := ∀ t : Fin 104, check4 t + +instance : Decidable step4OK := by unfold step4OK; infer_instance + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs5.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs5.lean new file mode 100644 index 0000000000..3dc4dc4d10 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Defs5.lean @@ -0,0 +1,48 @@ +import CarrierCode.E8Defs +import CarrierCode.E8Data5 + +/-! +# Data layer for step 5 (signs) + +`T s` are the ports of the frame `fT`; `En j s = 2 (r_j ⬝ r_{T s}) mod 3` is the frame coordinate of port `j`. +For every ordered pair `(s, s')` a tree (parent, depth) connects the ports meeting both `T s` and `T s'` by edges +`j - k` that are orthogonal, share only `s, s'` and have opposite sign products. +-/ + +namespace CarrierCode.E8 + +def Tn (s : ℕ) : ℕ := frN fT s +def En (j s : ℕ) : ℕ := (2 * dotN j (Tn s)) % 3 +def trP (s s' j : ℕ) : ℕ := ((treeData.getD (8 * s + s') []).getD j []).getD 0 0 +def trD (s s' j : ℕ) : ℕ := ((treeData.getD (8 * s + s') []).getD j []).getD 1 0 +def rt5 (s s' : ℕ) : ℕ := rootData5.getD (8 * s + s') 0 +def triW (s s' : ℕ) : ℕ := triData.getD (8 * s + s') 0 +def sup0 (j : ℕ) : ℕ := sup0Data.getD j 0 + +def treeOK (s s' j : ℕ) : Prop := + (trD s s' j = 0 → j = rt5 s s') ∧ + (trD s s' j ≠ 0 → trP s s' j < 104 ∧ trD s s' (trP s s' j) + 1 = trD s s' j ∧ + En (trP s s' j) s ≠ 0 ∧ En (trP s s' j) s' ≠ 0 ∧ trP s s' j ≠ j ∧ dotN j (trP s s' j) % 3 = 0 ∧ + (∀ u : Fin 8, u.val ≠ s → u.val ≠ s' → (En j u * En (trP s s' j) u) % 3 = 0) ∧ + (En j s * En j s' + En (trP s s' j) s * En (trP s s' j) s') % 3 = 0) + +def c5diag : Prop := ∀ t : Fin 104, dotN t t % 3 = 2 +def c5root : Prop := ∀ s s' : Fin 8, s ≠ s' → rt5 s s' < 104 ∧ En (rt5 s s') s ≠ 0 ∧ En (rt5 s s') s' ≠ 0 +def c5tree : Prop := ∀ s s' : Fin 8, s ≠ s' → ∀ j : Fin 104, En j s ≠ 0 → En j s' ≠ 0 → treeOK s s' j +def c5tri : Prop := ∀ s s' : Fin 8, s.val ≠ 0 → s'.val ≠ 0 → s ≠ s' → + triW s s' < 104 ∧ En (triW s s') 0 ≠ 0 ∧ En (triW s s') s ≠ 0 ∧ En (triW s s') s' ≠ 0 +def c5sup : Prop := ∀ j : Fin 104, sup0 j < 8 ∧ En j (sup0 j) ≠ 0 +def c5gram : Prop := ∀ j k : Fin 104, ((List.range 8).map fun s => En j s * En k s).sum % 3 = (2 * dotN j k) % 3 + +def check5 : Prop := c5diag ∧ c5root ∧ c5tree ∧ c5tri ∧ c5sup ∧ c5gram + +instance (s s' j : ℕ) : Decidable (treeOK s s' j) := by unfold treeOK; infer_instance +instance : Decidable c5diag := by unfold c5diag; infer_instance +instance : Decidable c5root := by unfold c5root; infer_instance +instance : Decidable c5tree := by unfold c5tree; infer_instance +instance : Decidable c5tri := by unfold c5tri; infer_instance +instance : Decidable c5sup := by unfold c5sup; infer_instance +instance : Decidable c5gram := by unfold c5gram; infer_instance +instance : Decidable check5 := by unfold check5; infer_instance + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Main.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Main.lean new file mode 100644 index 0000000000..2f9413a0d3 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Main.lean @@ -0,0 +1,26 @@ +import CarrierCode.E8Checks +import CarrierCode.E8Check4 +import CarrierCode.E8Check5 +import CarrierCode.E8Step5 + +/-! +# Search-free uniqueness of the length-8 decoding code (E8-PROOF.md) + +Let `M` be the 104 × 104 matrix of decoding vectors over `F₃`: `M = A * B` with inner dimension 8 (the code has +dimension at most 8), unit diagonal, and `M i j = 0` whenever ports `i ≠ j` conflict (their E8 roots are +orthogonal). Then `M = D (2 Gm) D` for a diagonal `±1` matrix `D`, where `Gm` is the Gram form of the roots mod 3. +So the decoding vectors, and the code they span, are unique up to signs. + +All finite inputs are checked by the kernel (`decide +kernel`), with no `native_decide`. +-/ + +namespace CarrierCode.E8 + +theorem checks3_true : Checks3 := ⟨framesOK_true, step3_checks⟩ + +theorem decoding_unique (M : Matrix ι ι (ZMod 3)) (A : Matrix ι (Fin 8) (ZMod 3)) (B : Matrix (Fin 8) ι (ZMod 3)) + (h : Hyp M A B) : + ∃ D : ι → ZMod 3, (∀ j, D j * D j = 1) ∧ ∀ j k, M j k = D j * D k * (2 * Gm j k) := + signs h checks3_true step4OK_true check5_true + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step3.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step3.lean new file mode 100644 index 0000000000..21cc80e9e4 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step3.lean @@ -0,0 +1,214 @@ +import CarrierCode.E8 +import CarrierCode.E8Defs + +/-! +# Steps 1–3 for the concrete ports + +For a matrix `M = A * B` (inner dimension 8) with unit diagonal and zeros on orthogonal pairs, every frame gives +`∑_{x ∈ F} N t x = 1` with `N t x = M t x * M x t`; with the checked certificates this yields +`N t x = 1 + Gm t x * (r x ⬝ᵥ v t)` for an explicit `v t ⟂ r t` (step 3 of E8-PROOF.md). +-/ + +namespace CarrierCode.E8 + +open Matrix + +variable (M : Matrix ι ι (ZMod 3)) (A : Matrix ι (Fin 8) (ZMod 3)) (B : Matrix (Fin 8) ι (ZMod 3)) + +/-- The hypotheses on a decoding matrix. -/ +structure Hyp : Prop where + fac : M = A * B + diag : ∀ i, M i i = 1 + conf : ∀ i j, i ≠ j → Gm i j = 0 → M i j = 0 + +/-- `N t x = M t x * M x t`. -/ +def Nm (t x : ι) : ZMod 3 := M t x * M x t + +variable {M A B} + +theorem frame_mat (h : Hyp M A B) (hF : framesOK) (f : Fin 759) : M.submatrix (fr f) (fr f) = 1 := by + ext k l + obtain ⟨_, hf⟩ := hF f + simp only [submatrix_apply, one_apply] + by_cases hkl : k = l + · subst hkl; simp [h.diag] + · obtain ⟨hk, hd⟩ := hf k l + obtain ⟨hdot, hne⟩ := hd hkl + have hl := (hf l k).1 + rw [if_neg hkl] + apply h.conf + · intro e; apply hne + have := congrArg Fin.val e + simpa [fr, toι_val hk, toι_val hl] using this + · show r (fr f k).val ⬝ᵥ r (fr f l).val = 0 + rw [← dotN_cast] + simp only [fr, toι_val hk, toι_val hl] + exact (cast_eq_zero_iff _).mpr hdot + +theorem frame_sum_N (h : Hyp M A B) (hF : framesOK) (f : Fin 759) (t : ι) : + ∑ k : Fin 8, Nm M t (fr f k) = 1 := by + have hm := frame_mat h hF f + rw [h.fac] at hm + have := CarrierCode.E8.frame_sum A B (fr f) hm t + rw [← h.fac] at this + rw [← h.diag t, ← this]; rfl + +theorem frame_sum_count (h : Hyp M A B) (hF : framesOK) (f : Fin 759) (t : ι) : + ∑ i : ι, (((frL f).count i.val : ℕ) : ZMod 3) * Nm M t i = 1 := by + obtain ⟨hlen, hf⟩ := hF f + have hl : ∀ a ∈ frL f, a < 104 := by + intro a ha + obtain ⟨k, hk, rfl⟩ := List.getElem_of_mem ha + have := (hf ⟨k, hlen ▸ hk⟩ ⟨k, hlen ▸ hk⟩).1 + simpa [frN, List.getD_eq_getElem?_getD, List.getElem?_eq_getElem hk] using this + rw [sum_count _ hl, ← sum_fin8 _ hlen] + exact frame_sum_N h hF f t + +theorem comb_sum (h : Hyp M A B) (hF : framesOK) (t : ι) (L : List (ℕ × ℕ)) (hL : ∀ p ∈ L, p.1 < 759) : + ∑ i : ι, ((accL L i.val : ℕ) : ZMod 3) * Nm M t i = (((L.map Prod.snd).sum : ℕ) : ZMod 3) := by + induction L with + | nil => simp [accL] + | cons p L ih => + have ih' := ih (fun q hq => hL q (by simp [hq])) + have hp := frame_sum_count h hF ⟨p.1, hL p (by simp)⟩ t + simp only [accL, List.map_cons, List.sum_cons] at ih' ⊢ + push_cast at ih' ⊢ + have e : ∀ i : ι, ((p.2 : ZMod 3) * ((frL p.1).count i.val : ℕ) + + (L.map fun q => (((q.2 * (frL q.1).count i.val : ℕ)) : ZMod 3)).sum) * Nm M t i = + (p.2 : ZMod 3) * ((((frL p.1).count i.val : ℕ) : ZMod 3) * Nm M t i) + + (L.map fun q => (((q.2 * (frL q.1).count i.val : ℕ)) : ZMod 3)).sum * Nm M t i := fun i => by ring + simp only [List.map_map, Function.comp_def] at ih' ⊢ + rw [Finset.sum_congr rfl fun i _ => e i, Finset.sum_add_distrib, ← Finset.mul_sum, hp, mul_one] + push_cast at ih' ⊢ + rw [ih'] + +/-- The vector `v_t` of step 3. -/ +def vv (M : Matrix ι ι (ZMod 3)) (t : ι) : Fin 8 → ZMod 3 := + ∑ j : Fin 7, (Nm M t (toι (seedN t j)) - 1) • vec (wL t j) + +theorem sum_range7 (g : ℕ → ℕ) : (((List.range 7).map g).sum : ℕ) = ∑ j : Fin 7, g j := by + simp [List.sum_range_succ, Fin.sum_univ_seven] + +theorem conf_N (h : Hyp M A B) (t i : ι) (hit : i ≠ t) (hG : dotN t i % 3 = 0) : Nm M t i = 0 := by + have : M t i = 0 := h.conf t i (Ne.symm hit) (by rw [Gm, ← dotN_cast]; exact (cast_eq_zero_iff _).mpr hG) + simp [Nm, this] + +theorem rx_dot_vv (t x : ι) : + Gm t x * (r x ⬝ᵥ vv M t) = ∑ j : Fin 7, (Nm M t (toι (seedN t j)) - 1) * ((eN t x j : ℕ) : ZMod 3) := by + simp only [vv, dotProduct_sum, dotProduct_smul, smul_eq_mul, Finset.mul_sum, eN] + refine Finset.sum_congr rfl fun j _ => ?_ + push_cast; rw [dotN_cast, dotW_cast]; simp only [Gm]; ring + +theorem seed_mem {t x : ℕ} (hlen : (seedL t).length = 7) (hx : x ∈ seedL t) : ∃ i : Fin 7, seedN t i = x := by + obtain ⟨k, hk, rfl⟩ := List.getElem_of_mem hx + exact ⟨⟨k, hlen ▸ hk⟩, by simp [seedN, List.getD_eq_getElem?_getD, List.getElem?_eq_getElem hk]⟩ + +/-- Step 3 at a seed. -/ +theorem step3_seed {t x : ι} (hS : seedOK t.val) (i : Fin 7) (hx : seedN t i = x.val) : + Nm M t x = 1 + Gm t x * (r x ⬝ᵥ vv M t) := by + rw [rx_dot_vv] + have hδ : ∀ j : Fin 7, ((eN t x j : ℕ) : ZMod 3) = if i = j then 1 else 0 := by + intro j + have := (hS.2 i j).2.2.1 + rw [hx] at this + rw [← cast_mod, eN, this]; split_ifs <;> simp + simp_rw [hδ, mul_ite, mul_one, mul_zero, Finset.sum_ite_eq, Finset.mem_univ, if_true] + have : toι (seedN t i) = x := Fin.ext (by rw [hx, toι_val x.isLt]) + rw [this]; ring + +/-- Step 3 away from the seeds, from the certificate. -/ +theorem step3_cert {t x : ι} (h : Hyp M A B) (hF : framesOK) (hS : seedOK t.val) (hxt : x ≠ t) + (hpos : ∀ p ∈ combL t x, p.1 < 759) + (hacc : ∀ i : Fin 104, i.val = t.val ∨ dotN t i % 3 = 0 ∨ accL (combL t x) i % 3 = tgt t x i % 3) + (hsc : (((combL t x).map Prod.snd).sum + 2 * accL (combL t x) t) % 3 = + (1 + ((List.range 7).map fun j => 2 * eN t x j).sum) % 3) : + Nm M t x = 1 + Gm t x * (r x ⬝ᵥ vv M t) := by + have hc := comb_sum h hF t (combL t x) hpos + -- tgt vanishes at t + have htgt_t : tgt t x t = 0 := by + have hxt' : t.val ≠ x.val := fun e => hxt (Fin.ext e.symm) + simp only [tgt, if_neg hxt', zero_add] + apply List.sum_eq_zero + intro a ha + obtain ⟨j, hj, rfl⟩ := List.mem_map.mp ha + have := (hS.2 ⟨j, List.mem_range.mp hj⟩ ⟨0, by norm_num⟩).2.1 + simp [Ne.symm this] + -- split the sum + have hsplit : ∀ i : ι, ((accL (combL t x) i.val : ℕ) : ZMod 3) * Nm M t i = + (if i = t then ((accL (combL t x) t.val : ℕ) : ZMod 3) else 0) + ((tgt t x i.val : ℕ) : ZMod 3) * Nm M t i := by + intro i + by_cases hit : i = t + · subst hit; simp [htgt_t, Nm, h.diag] + · rw [if_neg hit, zero_add] + rcases hacc i with e | e | e + · exact absurd (Fin.ext e) hit + · rw [conf_N h t i hit e]; simp + · rw [← cast_mod (accL _ _), e, cast_mod] + rw [Finset.sum_congr rfl fun i _ => hsplit i, Finset.sum_add_distrib, Finset.sum_ite_eq'] at hc + simp only [Finset.mem_univ, if_true] at hc + -- evaluate the tgt sum + have hterm : ∀ i : ι, ((tgt t x i.val : ℕ) : ZMod 3) * Nm M t i = + (if i = x then Nm M t i else 0) + + ∑ j : Fin 7, if i = toι (seedN t j) then 2 * ((eN t x j : ℕ) : ZMod 3) * Nm M t i else 0 := by + intro i + simp only [tgt] + rw [sum_range7] + push_cast [Nat.cast_ite] + rw [add_mul, Finset.sum_mul] + have hx : (i.val = x.val) ↔ i = x := ⟨Fin.ext, fun e => e ▸ rfl⟩ + have h1 : ((if i.val = x.val then (1 : ZMod 3) else 0)) * Nm M t i = if i = x then Nm M t i else 0 := by + by_cases e : i = x + · rw [if_pos (hx.mpr e), if_pos e, one_mul] + · rw [if_neg (fun h => e (hx.mp h)), if_neg e, zero_mul] + have h2 : ∀ j : Fin 7, ((if i.val = seedN t j then 2 * ((eN t x j : ℕ) : ZMod 3) else 0)) * Nm M t i = + if i = toι (seedN t j) then 2 * ((eN t x j : ℕ) : ZMod 3) * Nm M t i else 0 := by + intro j + have hj := (hS.2 j j).1 + have hs : (i.val = seedN t ↑j) ↔ i = toι (seedN t j) := + ⟨fun e => Fin.ext (by rw [toι_val hj]; exact e), fun e => by rw [e, toι_val hj]⟩ + by_cases e : i = toι (seedN t j) + · rw [if_pos (hs.mpr e), if_pos e] + · rw [if_neg (fun h => e (hs.mp h)), if_neg e, zero_mul] + exact congrArg₂ (· + ·) h1 (Finset.sum_congr rfl fun j _ => h2 j) + have htsum : ∑ i : ι, ((tgt t x i.val : ℕ) : ZMod 3) * Nm M t i = + Nm M t x + ∑ j : Fin 7, 2 * ((eN t x j : ℕ) : ZMod 3) * Nm M t (toι (seedN t j)) := by + rw [Finset.sum_congr rfl fun i _ => hterm i, Finset.sum_add_distrib, Finset.sum_ite_eq', + Finset.sum_comm] + simp only [Finset.sum_ite_eq', Finset.mem_univ, if_true] + rw [htsum] at hc + rw [sum_range7] at hsc + have hsc' := congrArg (fun n : ℕ => (n : ZMod 3)) hsc + simp only [cast_mod] at hsc' + push_cast at hsc' hc + rw [rx_dot_vv] + have h3 : (3 : ZMod 3) = 0 := by decide + -- hc : acc_t + (N x + Σ 2 e_j N s_j) = Σ c ; hsc' : Σ c + 2 acc_t = 1 + Σ 2 e_j + have key : Nm M t x = 1 + ∑ j : Fin 7, 2 * ((eN t x j : ℕ) : ZMod 3) - + ∑ j : Fin 7, 2 * ((eN t x j : ℕ) : ZMod 3) * Nm M t (toι (seedN t j)) := by + linear_combination hc + hsc' - (accL (combL t x) t.val : ZMod 3) * h3 + rw [key, add_sub_assoc, ← Finset.sum_sub_distrib] + refine congrArg (1 + ·) (Finset.sum_congr rfl fun j _ => ?_) + linear_combination (((eN t x j : ℕ) : ZMod 3) * (1 - Nm M t (toι (seedN t j)))) * h3 + +theorem rt_dot_vv {t : ι} (hS : seedOK t.val) : r t ⬝ᵥ vv M t = 0 := by + simp only [vv, dotProduct_sum, dotProduct_smul, smul_eq_mul] + refine Finset.sum_eq_zero fun j _ => ?_ + rw [← dotW_cast, ← cast_mod, (hS.2 j j).2.2.2]; simp + +/-- Step 3 (equation (3) of E8-PROOF.md) for every non-orthogonal pair, given the checks. -/ +theorem step3 (h : Hyp M A B) (hF : framesOK) (hC : ∀ t : ι, seedOK t.val ∧ ∀ x : ι, check3 t.val x.val) + (t x : ι) (hnz : dotN t x % 3 ≠ 0) : + Nm M t x = 1 + Gm t x * (r x ⬝ᵥ vv M t) := by + obtain ⟨hS, hc⟩ := hC t + rcases hc x with e | e | e | ⟨hpos, hacc, hsc⟩ + · have : x = t := Fin.ext e + subst this + rw [rt_dot_vv hS, mul_zero, add_zero]; simp [Nm, h.diag] + · exact absurd e hnz + · obtain ⟨i, hi⟩ := seed_mem hS.1 e + exact step3_seed hS i hi + · by_cases hxt : x = t + · subst hxt; rw [rt_dot_vv hS, mul_zero, add_zero]; simp [Nm, h.diag] + · exact step3_cert h hF hS hxt hpos hacc hsc + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step4.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step4.lean new file mode 100644 index 0000000000..2bfcc6c58b --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step4.lean @@ -0,0 +1,134 @@ +import CarrierCode.E8Step3 +import CarrierCode.E8Defs4 + +/-! +# Step 4: symmetry and A2 triangles kill `v_t` + +From step 3 and the symmetry of `N`, `r_x ⬝ v_t = r_t ⬝ v_x` for non-orthogonal ports. Along an A2 triangle this +forces `r_x ⬝ v_t = 0` (`a2_gen`), and the checked spanning triangles give `v_t = 0`. Hence `N t x = 1`, so `M` is +symmetric and `M t x = ±1` for every non-orthogonal pair. +-/ + +namespace CarrierCode.E8 + +open Matrix + +variable {M : Matrix ι ι (ZMod 3)} {A : Matrix ι (Fin 8) (ZMod 3)} {B : Matrix (Fin 8) ι (ZMod 3)} + +/-- The checks of steps 1–3 (proved by the kernel in `E8Checks.lean`). -/ +def Checks3 : Prop := framesOK ∧ ∀ t : ι, seedOK t.val ∧ ∀ x : ι, check3 t.val x.val + +theorem step3' (h : Hyp M A B) (hC : Checks3) (t x : ι) (hnz : dotN t x % 3 ≠ 0) : + Nm M t x = 1 + Gm t x * (r x ⬝ᵥ vv M t) := step3 h hC.1 hC.2 t x hnz + +theorem two_mul_ne (a b : ZMod 3) (ha : a ≠ 0) (hb : b ≠ 0) : 2 * a * b ≠ 0 := by + revert a b; decide + +/-- The A2 trick for a general triangle `r_y = a r_t + b r_x` in characteristic 3. -/ +theorem a2_gen {n : Type*} [Fintype n] (rt rx ry vt vx vy : n → ZMod 3) (a b : ZMod 3) (ha : a ≠ 0) (hb : b ≠ 0) + (hy : ry = a • rt + b • rx) (ht : rt ⬝ᵥ vt = 0) (hx : rx ⬝ᵥ vx = 0) (hyy : ry ⬝ᵥ vy = 0) + (stx : rx ⬝ᵥ vt = rt ⬝ᵥ vx) (sty : ry ⬝ᵥ vt = rt ⬝ᵥ vy) (sxy : rx ⬝ᵥ vy = ry ⬝ᵥ vx) : + rx ⬝ᵥ vt = 0 := by + have e1 : ry ⬝ᵥ vt = b * (rx ⬝ᵥ vt) := by + rw [hy, add_dotProduct, smul_dotProduct, smul_dotProduct, ht, smul_eq_mul, smul_eq_mul, mul_zero, zero_add] + have e2 : ry ⬝ᵥ vx = a * (rx ⬝ᵥ vt) := by + rw [hy, add_dotProduct, smul_dotProduct, smul_dotProduct, hx, smul_eq_mul, smul_eq_mul, mul_zero, add_zero, stx] + have e3 : ry ⬝ᵥ vy = a * (rt ⬝ᵥ vy) + b * (rx ⬝ᵥ vy) := by + rw [hy, add_dotProduct, smul_dotProduct, smul_dotProduct, smul_eq_mul, smul_eq_mul] + rw [← sty, sxy, e1, e2, hyy] at e3 + have key : (2 * a * b) * (rx ⬝ᵥ vt) = 0 := by linear_combination -e3 + exact (mul_eq_zero.mp key).resolve_left (two_mul_ne a b ha hb) + +theorem dotN_comm (i j : ℕ) : dotN i j = dotN j i := by + simp only [dotN, dotW, rv, rL]; ring + +theorem Gm_ne {t x : ι} (hnz : dotN t x % 3 ≠ 0) : Gm t x ≠ 0 := by + rw [Gm, ← dotN_cast]; exact fun e => hnz ((cast_eq_zero_iff _).mp e) + +/-- (4) of E8-PROOF.md. -/ +theorem symm_rel (h : Hyp M A B) (hC : Checks3) {t x : ι} (hnz : dotN t x % 3 ≠ 0) : + r x ⬝ᵥ vv M t = r t ⬝ᵥ vv M x := by + have e1 := step3' h hC t x hnz + have e2 := step3' h hC x t (by rwa [dotN_comm]) + have hN : Nm M t x = Nm M x t := mul_comm _ _ + rw [e1, e2, Gm_comm x t] at hN + exact mul_left_cancel₀ (Gm_ne hnz) (add_left_cancel hN) + +theorem rv_vec (i : ℕ) (k : Fin 8) : ((rv i k : ℕ) : ZMod 3) = r i k := rfl + +theorem tri_vec {t i : ℕ} (hT : tri4 t i) : + r (ay t i) = ((aa t i : ℕ) : ZMod 3) • r t + ((ab t i : ℕ) : ZMod 3) • r (ax t i) := by + funext k + have e := hT.2.2.2.2.2.2.2 k + have e' := congrArg (fun n : ℕ => (n : ZMod 3)) e + simp only [cast_mod] at e' + push_cast at e' + simp only [Pi.add_apply, Pi.smul_apply, smul_eq_mul] + rw [rv_vec, rv_vec, rv_vec] at e' + have h3 : (3 : ZMod 3) = 0 := by decide + linear_combination e' - (r t k * (aa t i : ZMod 3) + r (ax t i) k * (ab t i : ZMod 3)) * h3 + +theorem unit3 {n : ℕ} (h : n = 1 ∨ n = 2) : ((n : ℕ) : ZMod 3) ≠ 0 := by + rcases h with rfl | rfl <;> decide + +theorem vv_self (hC : Checks3) (u : ι) : r u ⬝ᵥ vv M u = 0 := rt_dot_vv (hC.2 u).1 + +/-- Every row `r_x` of the spanning set is orthogonal to `v_t`. -/ +theorem row_dot_vv (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) (t : ι) (i : Fin 7) : + r (ax t i) ⬝ᵥ vv M t = 0 := by + have hT := (h4 t).1 i + obtain ⟨hx, hy, htx, hty, hxy, ha, hb, -⟩ := (h4 t).1 i + have ex : ((toι (ax t i) : ι) : ℕ) = ax t i := toι_val hx + have ey : ((toι (ay t i) : ι) : ℕ) = ay t i := toι_val hy + have stx := symm_rel h hC (t := t) (x := toι (ax t i)) (by rwa [ex]) + have sty := symm_rel h hC (t := t) (x := toι (ay t i)) (by rwa [ey]) + have sxy := symm_rel h hC (t := toι (ay t i)) (x := toι (ax t i)) (by rw [ex, ey, dotN_comm]; exact hxy) + have vx := vv_self (M := M) hC (toι (ax t i)) + have vy := vv_self (M := M) hC (toι (ay t i)) + rw [ex] at stx sxy vx + rw [ey] at sty sxy vy + exact a2_gen (r t) (r (ax t i)) (r (ay t i)) (vv M t) (vv M (toι (ax t i))) (vv M (toι (ay t i))) + _ _ (unit3 ha) (unit3 hb) (tri_vec hT) (vv_self hC t) vx vy stx sty sxy + +theorem sum_range8 (g : ℕ → ℕ) : (((List.range 8).map g).sum : ℕ) = ∑ j : Fin 8, g j := by + simp [List.sum_range_succ, Fin.sum_univ_eight] + +/-- Step 4: `v_t = 0`. -/ +theorem vv_zero (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) (t : ι) : vv M t = 0 := by + have hrow : ∀ i : Fin 8, vec (rowL t i) ⬝ᵥ vv M t = 0 := by + intro i + by_cases hi : (i : ℕ) = 0 + · simp only [rowL, if_pos hi]; exact vv_self hC t + · simp only [rowL, if_neg hi] + have := row_dot_vv h hC h4 t ⟨i - 1, by omega⟩ + exact this + funext k + have hinv : ∀ l : Fin 8, ∑ i : Fin 8, ((cL t k i : ℕ) : ZMod 3) * vec (rowL t i) l = if k = l then 1 else 0 := by + intro l + have e := (h4 t).2 k l + rw [sum_range8] at e + have e' := congrArg (fun n : ℕ => (n : ZMod 3)) e + simp only [cast_mod] at e' + push_cast at e' + exact e' + calc vv M t k = ∑ l : Fin 8, (if k = l then (1 : ZMod 3) else 0) * vv M t l := by simp + _ = ∑ l : Fin 8, ∑ i : Fin 8, ((cL t k i : ℕ) : ZMod 3) * vec (rowL t i) l * vv M t l := by + simp_rw [← hinv, Finset.sum_mul] + _ = ∑ i : Fin 8, ((cL t k i : ℕ) : ZMod 3) * (vec (rowL t i) ⬝ᵥ vv M t) := by + rw [Finset.sum_comm]; simp only [dotProduct, Finset.mul_sum, mul_assoc] + _ = 0 := by simp [hrow] + +/-- After step 4: `N t x = 1` for non-orthogonal pairs. -/ +theorem N_one (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) {t x : ι} (hnz : dotN t x % 3 ≠ 0) : Nm M t x = 1 := by + rw [step3' h hC t x hnz, vv_zero h hC h4, dotProduct_zero, mul_zero, add_zero] + +/-- (5) of E8-PROOF.md: `M` is symmetric and `M t x = ±1` off the conflict pattern. -/ +theorem M_symm_pm (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) {t x : ι} (hnz : dotN t x % 3 ≠ 0) : + M x t = M t x ∧ M t x * M t x = 1 := by + have e := N_one h hC h4 hnz + simp only [Nm] at e + generalize M t x = a at e ⊢ + generalize M x t = b at e ⊢ + revert a b; decide + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step5.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step5.lean new file mode 100644 index 0000000000..cf7cd1beef --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/E8Step5.lean @@ -0,0 +1,270 @@ +import CarrierCode.E8Step4 +import CarrierCode.E8Defs5 + +/-! +# Step 5: signs + +With `M` symmetric, `±1` off the conflict pattern, and `M = M[:, T] M[T, :]` for the frame `T`, the frame +coordinates `X j s = M j (T s)` satisfy `X j s = c_j d_s E j s` where `E j s = 2 r_j ⬝ r_{T s}`. The pair products +`P j s s'` are constant along the checked trees (orthogonality and opposite signs), their triangle products are `1`, +so they form a coboundary `d_s d_s'`. Hence `M = D (2 Gm) D` with `D = ±1`. +-/ + +namespace CarrierCode.E8 + +open Matrix + +variable {M : Matrix ι ι (ZMod 3)} {A : Matrix ι (Fin 8) (ZMod 3)} {B : Matrix (Fin 8) ι (ZMod 3)} + +def fT' : Fin 759 := ⟨fT, by decide⟩ +def T (s : Fin 8) : ι := fr fT s +def E (j : ι) (s : Fin 8) : ZMod 3 := 2 * Gm j (T s) +def X (M : Matrix ι ι (ZMod 3)) (j : ι) (s : Fin 8) : ZMod 3 := M j (T s) +def P (M : Matrix ι ι (ZMod 3)) (j : ι) (s s' : Fin 8) : ZMod 3 := X M j s * X M j s' * E j s * E j s' + +theorem sq_one_of_ne (a : ZMod 3) (h : a ≠ 0) : a * a = 1 := by revert a; decide + +theorem T_val (hF : framesOK) (s : Fin 8) : (T s).val = Tn s := toι_val ((hF fT').2 s s).1 + +theorem En_cast (hF : framesOK) (j : ι) (s : Fin 8) : ((En j s : ℕ) : ZMod 3) = E j s := by + rw [En, cast_mod]; push_cast; rw [dotN_cast, E, Gm, T_val hF] + +theorem E_ne (hF : framesOK) {j : ι} {s : Fin 8} (h : En j s ≠ 0) : E j s ≠ 0 := by + rw [← En_cast hF]; intro e; apply h + have := (cast_eq_zero_iff _).mp e + unfold En at this ⊢; omega + +theorem E_eq (hF : framesOK) {j : ι} {s : Fin 8} (h : En j s = 0) : E j s = 0 := by + rw [← En_cast hF, h, Nat.cast_zero] + +theorem M_symm (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) (j k : ι) : M j k = M k j := by + by_cases hjk : j = k + · subst hjk; rfl + by_cases hz : dotN j k % 3 = 0 + · have g : Gm j k = 0 := by rw [Gm, ← dotN_cast]; exact (cast_eq_zero_iff _).mpr hz + rw [h.conf j k hjk g, h.conf k j (Ne.symm hjk) (by rw [Gm_comm]; exact g)] + · exact (M_symm_pm h hC h4 hz).1.symm + +theorem M_fac (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) (j k : ι) : + M j k = ∑ s, X M j s * X M k s := by + have hm := frame_mat h hC.1 fT' + rw [h.fac] at hm + have e := frame_factor A B (fr fT') hm + rw [← h.fac] at e + rw [congrFun (congrFun e j) k, mul_apply] + refine Finset.sum_congr rfl fun s _ => ?_ + simp only [submatrix_apply, id, X, T] + rw [M_symm h hC h4 (fr fT' s) k]; rfl + +theorem X_sq (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) (h5 : check5) (j : ι) (s : Fin 8) : + X M j s * X M j s = E j s * E j s := by + simp only [X, E] + by_cases hjt : j = T s + · rw [hjt, h.diag] + have hd := h5.1 (T s) + have : Gm (T s) (T s) = 2 := by + rw [Gm, ← dotN_cast, ← cast_mod, hd]; rfl + rw [this]; decide + by_cases hz : dotN j (T s) % 3 = 0 + · have g : Gm j (T s) = 0 := by rw [Gm, ← dotN_cast]; exact (cast_eq_zero_iff _).mpr hz + rw [h.conf j (T s) hjt g, g]; ring + · rw [(M_symm_pm h hC h4 hz).2] + have := sq_one_of_ne _ (Gm_ne hz) + have h3 : (3 : ZMod 3) = 0 := by decide + linear_combination (-4 : ZMod 3) * this - h3 + +section +variable (h : Hyp M A B) (hC : Checks3) (h4 : step4OK) (h5 : check5) +include h hC h4 h5 + +theorem X_zero {j : ι} {s : Fin 8} (hE : E j s = 0) : X M j s = 0 := by + have := X_sq h hC h4 h5 j s + rw [hE, mul_zero] at this + exact mul_self_eq_zero.mp this + +theorem X_one {j : ι} {s : Fin 8} (hE : E j s ≠ 0) : X M j s * X M j s = 1 := by + rw [X_sq h hC h4 h5, sq_one_of_ne _ hE] + +omit h hC h4 h5 in +theorem edge_alg' (a b c d e1 e2 e3 e4 : ZMod 3) (H : a * c + b * d = 0) (Hs : e1 * e2 + e3 * e4 = 0) + (hb : b * b = 1) (hc : c * c = 1) : a * b * e1 * e2 = c * d * e3 * e4 := by + linear_combination e1 * e2 * (b * c * H - a * b * hc - c * d * hb) - c * d * Hs + +/-- One tree edge: orthogonal ports sharing exactly `s, s'` with opposite signs have equal pair products. -/ +theorem edge {j k : ι} {s s' : Fin 8} (hss : s ≠ s') (hjk : k ≠ j) (hort : dotN j k % 3 = 0) + (hks : En k s ≠ 0) (_hks' : En k s' ≠ 0) (_hjs : En j s ≠ 0) (hjs' : En j s' ≠ 0) + (hu : ∀ u : Fin 8, u.val ≠ s.val → u.val ≠ s'.val → (En j u * En k u) % 3 = 0) + (hsg : (En j s * En j s' + En k s * En k s') % 3 = 0) : + P M j s s' = P M k s s' := by + have hF := hC.1 + have hM : M j k = 0 := h.conf j k (Ne.symm hjk) (by rw [Gm, ← dotN_cast]; exact (cast_eq_zero_iff _).mpr hort) + rw [M_fac h hC h4] at hM + rw [Fintype.sum_eq_add s s' hss] at hM + · have hs := congrArg (fun n : ℕ => (n : ZMod 3)) hsg + simp only [cast_mod] at hs + push_cast at hs + simp only [En_cast hF] at hs + exact edge_alg' _ _ _ _ _ _ _ _ hM hs (X_one h hC h4 h5 (E_ne hF hjs')) (X_one h hC h4 h5 (E_ne hF hks)) + · intro u ⟨hu1, hu2⟩ + have e := hu u (fun e => hu1 (Fin.ext e)) (fun e => hu2 (Fin.ext e)) + have e' := congrArg (fun n : ℕ => (n : ZMod 3)) e + simp only [cast_mod] at e' + push_cast at e' + simp only [En_cast hF] at e' + rcases mul_eq_zero.mp e' with z | z + · rw [X_zero h hC h4 h5 z, zero_mul] + · rw [X_zero h hC h4 h5 z, mul_zero] + +/-- Pair products are constant along the trees. -/ +theorem P_const (s s' : Fin 8) (hss : s ≠ s') : + ∀ n, ∀ j : ι, trD s s' j = n → En j s ≠ 0 → En j s' ≠ 0 → P M j s s' = P M (toι (rt5 s s')) s s' := by + intro n + induction n with + | zero => + intro j hd hjs hjs' + have e := (h5.2.2.1 s s' hss j hjs hjs').1 hd + have : toι (rt5 s s') = j := by rw [← e]; exact Fin.ext (toι_val j.isLt) + rw [this] + | succ n ih => + intro j hd hjs hjs' + obtain ⟨hk, hdk, hks, hks', hkj, hort, hu, hsg⟩ := (h5.2.2.1 s s' hss j hjs hjs').2 (by omega) + have ek : ((toι (trP s s' j) : ι) : ℕ) = trP s s' j := toι_val hk + rw [← ek] at hks hks' hkj hort hu hsg hdk + rw [edge h hC h4 h5 hss (fun e => hkj (by rw [e])) hort hks hks' hjs hjs' hu hsg] + exact ih _ (by omega) hks hks' + +def ρ (M : Matrix ι ι (ZMod 3)) (s s' : Fin 8) : ZMod 3 := P M (toι (rt5 s s')) s s' + +theorem P_rho {s s' : Fin 8} (hss : s ≠ s') {j : ι} (hjs : En j s ≠ 0) (hjs' : En j s' ≠ 0) : + P M j s s' = ρ M s s' := P_const h hC h4 h5 s s' hss _ j rfl hjs hjs' + +theorem P_sq {j : ι} {s s' : Fin 8} (hjs : En j s ≠ 0) (hjs' : En j s' ≠ 0) : P M j s s' * P M j s' s = 1 := by + have hF := hC.1 + have a := X_one h hC h4 h5 (E_ne hF hjs); have b := X_one h hC h4 h5 (E_ne hF hjs') + have c := sq_one_of_ne _ (E_ne hF hjs); have d := sq_one_of_ne _ (E_ne hF hjs') + simp only [P] + have : X M j s * X M j s' * E j s * E j s' * (X M j s' * X M j s * E j s' * E j s) = + (X M j s * X M j s) * (X M j s' * X M j s') * (E j s * E j s) * (E j s' * E j s') := by ring + rw [this, a, b, c, d]; ring + +theorem P_tri {j : ι} {s s' s'' : Fin 8} (h1 : En j s ≠ 0) (h2 : En j s' ≠ 0) (h3 : En j s'' ≠ 0) : + P M j s s' * P M j s' s'' * P M j s'' s = 1 := by + have hF := hC.1 + have a := X_one h hC h4 h5 (E_ne hF h1); have b := X_one h hC h4 h5 (E_ne hF h2) + have c := X_one h hC h4 h5 (E_ne hF h3) + have a' := sq_one_of_ne _ (E_ne hF h1); have b' := sq_one_of_ne _ (E_ne hF h2) + have c' := sq_one_of_ne _ (E_ne hF h3) + simp only [P] + have : X M j s * X M j s' * E j s * E j s' * (X M j s' * X M j s'' * E j s' * E j s'') * + (X M j s'' * X M j s * E j s'' * E j s) = + (X M j s * X M j s) * (X M j s' * X M j s') * (X M j s'' * X M j s'') * + (E j s * E j s) * (E j s' * E j s') * (E j s'' * E j s'') := by ring + rw [this, a, b, c, a', b', c']; ring + +theorem rho_symm {s s' : Fin 8} (hss : s ≠ s') : ρ M s s' = ρ M s' s := by + obtain ⟨hr, h1, h2⟩ := h5.2.1 s s' hss + have e : ((toι (rt5 s s') : ι) : ℕ) = rt5 s s' := toι_val hr + rw [← e] at h1 h2 + rw [ρ, ← P_rho h hC h4 h5 (Ne.symm hss) h2 h1] + simp only [P]; ring + +theorem rho_sq {s s' : Fin 8} (hss : s ≠ s') : ρ M s s' * ρ M s s' = 1 := by + obtain ⟨hr, h1, h2⟩ := h5.2.1 s s' hss + have e : ((toι (rt5 s s') : ι) : ℕ) = rt5 s s' := toι_val hr + rw [← e] at h1 h2 + have := P_sq h hC h4 h5 h1 h2 + have hc : P M (toι (rt5 s s')) s' s = P M (toι (rt5 s s')) s s' := by simp only [P]; ring + rw [hc] at this; exact this + +def dd (M : Matrix ι ι (ZMod 3)) (s : Fin 8) : ZMod 3 := if s = 0 then 1 else ρ M 0 s + +theorem dd_sq (s : Fin 8) : dd M s * dd M s = 1 := by + unfold dd; split_ifs with hs + · ring + · exact rho_sq h hC h4 h5 (Ne.symm hs) + +theorem rho_cob {s s' : Fin 8} (hss : s ≠ s') : ρ M s s' = dd M s * dd M s' := by + have hF := hC.1 + by_cases h0 : s = 0 + · subst h0; simp [dd, Ne.symm hss] + by_cases h0' : s' = 0 + · subst h0' + rw [rho_symm h hC h4 h5 hss] + show ρ M 0 s = (if s = 0 then 1 else ρ M 0 s) * (if (0 : Fin 8) = 0 then 1 else ρ M 0 0) + rw [if_neg h0, if_pos rfl, mul_one] + obtain ⟨hw, w0, ws, ws'⟩ := h5.2.2.2.1 s s' (fun e => h0 (Fin.ext e)) (fun e => h0' (Fin.ext e)) hss + have e : ((toι (triW s s') : ι) : ℕ) = triW s s' := toι_val hw + rw [← e] at w0 ws ws' + have p1 := P_rho h hC h4 h5 (Ne.symm h0) w0 ws + have p2 := P_rho h hC h4 h5 hss ws ws' + have p3 := P_rho h hC h4 h5 (Ne.symm h0') w0 ws' + have t := P_tri h hC h4 h5 (s := 0) (s' := s) (s'' := s') w0 ws ws' + have c3 : P M (toι (triW s s')) s' 0 = P M (toι (triW s s')) 0 s' := by simp only [P]; ring + rw [c3, p1, p2, p3] at t + have hp := rho_sq h hC h4 h5 (Ne.symm h0) + have hu := rho_sq h hC h4 h5 (Ne.symm h0') + show ρ M s s' = (if s = 0 then 1 else ρ M 0 s) * (if s' = 0 then 1 else ρ M 0 s') + rw [if_neg h0, if_neg h0'] + generalize ρ M 0 s = a at t hp ⊢ + generalize ρ M 0 s' = b at t hu ⊢ + generalize ρ M s s' = q at t ⊢ + linear_combination a * b * t - q * b * b * hp - q * hu + +def s0 (j : ι) : Fin 8 := ⟨sup0 j % 8, Nat.mod_lt _ (by norm_num)⟩ +def cc (M : Matrix ι ι (ZMod 3)) (j : ι) : ZMod 3 := X M j (s0 j) * E j (s0 j) * dd M (s0 j) + +omit h hC h4 in +theorem s0_ne (j : ι) : En j (s0 j) ≠ 0 := by + obtain ⟨hl, hne⟩ := h5.2.2.2.2.1 j + simp only [s0, Nat.mod_eq_of_lt hl]; exact hne + +theorem X_form (j : ι) (s : Fin 8) : X M j s = cc M j * dd M s * E j s := by + have hF := hC.1 + by_cases hE : En j s = 0 + · rw [X_zero h hC h4 h5 (E_eq hF hE), E_eq hF hE, mul_zero] + have he := sq_one_of_ne _ (E_ne hF hE) + have hd := dd_sq h hC h4 h5 s + by_cases hs : s0 j = s + · rw [cc, hs] + linear_combination (-(X M j s * dd M s * dd M s)) * he - X M j s * hd + · have H := P_rho h hC h4 h5 hs (s0_ne h5 j) hE + rw [rho_cob h hC h4 h5 hs] at H + simp only [P] at H + have hx0 := X_one h hC h4 h5 (E_ne hF (s0_ne h5 j)) + have he0 := sq_one_of_ne _ (E_ne hF (s0_ne h5 j)) + rw [cc] + linear_combination (-(X M j s * E j (s0 j) * E j (s0 j) * E j s * E j s)) * hx0 - + X M j s * E j s * E j s * he0 - X M j s * he + X M j (s0 j) * E j (s0 j) * E j s * H + +theorem cc_sq (j : ι) : cc M j * cc M j = 1 := by + have hF := hC.1 + have a := X_one h hC h4 h5 (E_ne hF (s0_ne h5 j)) + have b := sq_one_of_ne _ (E_ne hF (s0_ne h5 j)) + have c := dd_sq h hC h4 h5 (s0 j) + simp only [cc] + linear_combination (E j (s0 j) * E j (s0 j) * dd M (s0 j) * dd M (s0 j)) * a + + dd M (s0 j) * dd M (s0 j) * b + c + +omit h h4 in +theorem gram (j k : ι) : ∑ s, E j s * E k s = 2 * Gm j k := by + have hF := hC.1 + have e := h5.2.2.2.2.2 j k + rw [sum_range8] at e + have e' := congrArg (fun n : ℕ => (n : ZMod 3)) e + simp only [cast_mod] at e' + push_cast at e' + simp only [En_cast hF] at e' + rw [e', dotN_cast]; rfl + +/-- **Step 5.** Every decoding matrix is `D (2 Gm) D` with `D = ±1`. -/ +theorem signs : ∃ D : ι → ZMod 3, (∀ j, D j * D j = 1) ∧ ∀ j k, M j k = D j * D k * (2 * Gm j k) := by + refine ⟨cc M, cc_sq h hC h4 h5, fun j k => ?_⟩ + rw [M_fac h hC h4, ← gram hC h5, Finset.mul_sum] + refine Finset.sum_congr rfl fun s _ => ?_ + rw [X_form h hC h4 h5 j s, X_form h hC h4 h5 k s] + have hd := dd_sq h hC h4 h5 s + linear_combination cc M j * cc M k * E j s * E k s * hd + +end + +end CarrierCode.E8 diff --git a/research/p104-carrier-code-uniqueness/lean/CarrierCode/Word.lean b/research/p104-carrier-code-uniqueness/lean/CarrierCode/Word.lean new file mode 100644 index 0000000000..47bd4fb117 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/CarrierCode/Word.lean @@ -0,0 +1,321 @@ +import Mathlib + +/-! +# Frame decomposition of a P104 local word (Lemma 1 and Corollary 2 of PROOF.md) + +A word acts on public roles `P` and owned roles `O`. Every role sits in a frame, a subspace of `F₂⁹`, and carries a +row; we keep only the live coordinates of rows (functions `L → R`), which is legitimate because every operation is +linear. Public roles only move up, operations act only between roles in the same frame, and `COPY` only targets +owned roles. + +The decomposition splits a public row into a *lives-in-frame* part `lp`, which only grows by ADDs between public +roles, and an *owned-delivered* part `od`, which collects everything received from owned roles. We prove: + +* `row = lp + od` on public roles, and `lp r m ≠ 0 → port m ∈ frame r` (Lemma 1); +* `od r` lies in the span of the owned rows delivered so far; +* at a partner whose final row is `e_ℓ` and whose final frame is `q_ℓ^⊥`, the owned part is `1` at `ℓ` and `0` at + every port conflicting with `ℓ` (Corollary 2). +-/ + +namespace CarrierCode + +/-- The space `F₂⁹` of port vectors. -/ +abbrev V9 := Fin 9 → ZMod 2 + +/-- The frames: subspaces of `F₂⁹`. -/ +abbrev Frame := Submodule (ZMod 2) V9 + +/-- Port vectors `q_i, q_j` conflict when their dot product is one. -/ +def Conflict (x y : V9) : Prop := x ⬝ᵥ y = 1 + +/-- The hyperplane `q^⊥`. -/ +def perp (q : V9) : Frame where + carrier := {x | x ⬝ᵥ q = 0} + add_mem' {a b} ha hb := by simp_all [add_dotProduct] + zero_mem' := by simp + smul_mem' c x hx := by simp_all [smul_dotProduct] + +variable {R : Type*} [CommRing R] {L P O : Type*} [DecidableEq P] [DecidableEq O] + +/-- Events of a word (live projections of the checker's operations). -/ +inductive Event (R P O : Type*) + | moveP (r : P) (F : Frame) + | moveO (o : O) (F : Frame) + | init (o : O) (F : Frame) + | clear (o : O) + | scaleP (r : P) (c : R) + | scaleO (o : O) (c : R) + | addPP (r s : P) (c : R) + | addOP (r : P) (o : O) (c : R) + | addPO (o : O) (s : P) (c : R) + | addOO (o o' : O) (c : R) + | copyPO (o : O) (s : P) (c : R) + | copyOO (o o' : O) (c : R) + +/-- State: frames, the decomposed public rows, the owned rows and the list of delivered owned rows. -/ +structure State (R L P O : Type*) where + fP : P → Frame + fO : O → Frame + lp : P → L → R + od : P → L → R + ow : O → L → R + delivered : List (L → R) + +namespace State + +/-- The actual public row. -/ +def row (S : State R L P O) (r : P) : L → R := S.lp r + S.od r + +/-- Legality of an event in a state (frame rules of the checker). -/ +def Legal (S : State R L P O) : Event R P O → Prop + | .moveP r F => S.fP r ≤ F + | .moveO o F => F ≤ S.fO o + | .init _ _ => True + | .clear _ => True + | .scaleP _ _ => True + | .scaleO _ _ => True + | .addPP r s _ => S.fP r = S.fP s + | .addOP r o _ => S.fP r = S.fO o + | .addPO o s _ => S.fO o = S.fP s + | .addOO o o' _ => S.fO o = S.fO o' + | .copyPO o s _ => S.fO o = S.fP s + | .copyOO o o' _ => S.fO o = S.fO o' + +/-- One step of the decomposed semantics. -/ +def step (S : State R L P O) : Event R P O → State R L P O + | .moveP r F => { S with fP := Function.update S.fP r F } + | .moveO o F => { S with fO := Function.update S.fO o F } + | .init o F => { S with fO := Function.update S.fO o F, ow := Function.update S.ow o 0 } + | .clear o => { S with ow := Function.update S.ow o 0 } + | .scaleP r c => { S with lp := Function.update S.lp r (c • S.lp r), od := Function.update S.od r (c • S.od r) } + | .scaleO o c => { S with ow := Function.update S.ow o (c • S.ow o) } + | .addPP r s c => + { S with lp := Function.update S.lp r (S.lp r + c • S.lp s), + od := Function.update S.od r (S.od r + c • S.od s) } + | .addOP r o c => + { S with od := Function.update S.od r (S.od r + c • S.ow o), delivered := S.ow o :: S.delivered } + | .addPO o s c => { S with ow := Function.update S.ow o (S.ow o + c • S.row s) } + | .addOO o o' c => { S with ow := Function.update S.ow o (S.ow o + c • S.ow o') } + | .copyPO o s c => { S with ow := Function.update S.ow o (c • S.row s) } + | .copyOO o o' c => { S with ow := Function.update S.ow o (c • S.ow o') } + +/-- Run a list of events. -/ +def run (S : State R L P O) : List (Event R P O) → State R L P O + | [] => S + | e :: es => (S.step e).run es + +/-- Every event of the list is legal when it is applied. -/ +def LegalRun (S : State R L P O) : List (Event R P O) → Prop + | [] => True + | e :: es => S.Legal e ∧ (S.step e).LegalRun es + +/-- The real row semantics (no decomposition), to check that `row = lp + od` is the checker's row. -/ +def stepRow (fP : P → Frame) (fO : O → Frame) (pr : P → L → R) (ow : O → L → R) : + Event R P O → (P → Frame) × (O → Frame) × (P → L → R) × (O → L → R) + | .moveP r F => (Function.update fP r F, fO, pr, ow) + | .moveO o F => (fP, Function.update fO o F, pr, ow) + | .init o F => (fP, Function.update fO o F, pr, Function.update ow o 0) + | .clear o => (fP, fO, pr, Function.update ow o 0) + | .scaleP r c => (fP, fO, Function.update pr r (c • pr r), ow) + | .scaleO o c => (fP, fO, pr, Function.update ow o (c • ow o)) + | .addPP r s c => (fP, fO, Function.update pr r (pr r + c • pr s), ow) + | .addOP r o c => (fP, fO, Function.update pr r (pr r + c • ow o), ow) + | .addPO o s c => (fP, fO, pr, Function.update ow o (ow o + c • pr s)) + | .addOO o o' c => (fP, fO, pr, Function.update ow o (ow o + c • ow o')) + | .copyPO o s c => (fP, fO, pr, Function.update ow o (c • pr s)) + | .copyOO o o' c => (fP, fO, pr, Function.update ow o (c • ow o')) + +/-- The decomposed step projects to the real step. -/ +theorem step_row (S : State R L P O) (e : Event R P O) : + stepRow S.fP S.fO S.row S.ow e = ((S.step e).fP, (S.step e).fO, (S.step e).row, (S.step e).ow) := by + cases e with + | moveP r F => rfl + | moveO o F => rfl + | init o F => rfl + | clear o => rfl + | scaleP r c => + simp only [stepRow, step, Prod.mk.injEq, true_and, and_true] + funext x; by_cases h : x = r + · subst h; simp [row, smul_add] + · simp [row, Function.update_of_ne h] + | scaleO o c => rfl + | addPP r s c => + simp only [stepRow, step, Prod.mk.injEq, true_and, and_true] + funext x; by_cases h : x = r + · subst h; simp only [row, Function.update_self]; module + · simp [row, Function.update_of_ne h] + | addOP r o c => + simp only [stepRow, step, Prod.mk.injEq, true_and, and_true] + funext x; by_cases h : x = r + · subst h; simp only [row, Function.update_self]; abel + · simp [row, Function.update_of_ne h] + | addPO o s c => rfl + | addOO o o' c => rfl + | copyPO o s c => rfl + | copyOO o o' c => rfl + +variable (port : L → V9) + +/-- Lemma 1 invariant: the lives-in-frame part sits on ports of the current frame; owned parts lie in the span of +the delivered owned rows. -/ +def Inv (S : State R L P O) : Prop := + (∀ r m, S.lp r m ≠ 0 → port m ∈ S.fP r) ∧ ∀ r, S.od r ∈ Submodule.span R {v | v ∈ S.delivered} + +theorem inv_step (S : State R L P O) (e : Event R P O) (h : Inv port S) (hl : S.Legal e) : + Inv port (S.step e) := by + obtain ⟨h1, h2⟩ := h + have mono : ∀ (S' : State R L P O), S.delivered ⊆ S'.delivered → + Submodule.span R {v | v ∈ S.delivered} ≤ Submodule.span R {v | v ∈ S'.delivered} := + fun S' hs => Submodule.span_mono (fun v hv => hs hv) + cases e with + | moveP r F => + refine ⟨fun x m hm => ?_, h2⟩ + by_cases hx : x = r + · subst hx; simp only [step, Function.update_self]; exact hl (h1 x m hm) + · simpa [step, Function.update_of_ne hx] using h1 x m hm + | moveO o F => exact ⟨h1, h2⟩ + | init o F => exact ⟨h1, h2⟩ + | clear o => exact ⟨h1, h2⟩ + | scaleP r c => + refine ⟨fun x m hm => ?_, fun x => ?_⟩ + · by_cases hx : x = r + · subst hx + simp only [step, Function.update_self, Pi.smul_apply, smul_eq_mul] at hm ⊢ + exact h1 x m (right_ne_zero_of_mul hm) + · simpa [step, Function.update_of_ne hx] using h1 x m (by simpa [step, Function.update_of_ne hx] using hm) + · by_cases hx : x = r + · subst hx; simp only [step, Function.update_self]; exact Submodule.smul_mem _ c (h2 x) + · simpa [step, Function.update_of_ne hx] using h2 x + | scaleO o c => exact ⟨h1, h2⟩ + | addPP r s c => + refine ⟨fun x m hm => ?_, fun x => ?_⟩ + · by_cases hx : x = r + · subst hx + simp only [step, Function.update_self, Pi.add_apply, Pi.smul_apply, smul_eq_mul] at hm ⊢ + by_cases ha : S.lp x m = 0 + · rw [ha, zero_add] at hm + have := h1 s m (right_ne_zero_of_mul hm) + rwa [show S.fP x = S.fP s from hl] + · exact h1 x m ha + · simpa [step, Function.update_of_ne hx] using h1 x m (by simpa [step, Function.update_of_ne hx] using hm) + · by_cases hx : x = r + · subst hx; simp only [step, Function.update_self] + exact Submodule.add_mem _ (h2 x) (Submodule.smul_mem _ c (h2 s)) + · simpa [step, Function.update_of_ne hx] using h2 x + | addOP r o c => + refine ⟨h1, fun x => ?_⟩ + have hsub : Submodule.span R {v | v ∈ S.delivered} ≤ + Submodule.span R {v | v ∈ (S.step (.addOP r o c)).delivered} := + mono _ (fun v hv => List.mem_cons_of_mem _ hv) + have hnew : S.ow o ∈ Submodule.span R {v | v ∈ (S.step (.addOP r o c)).delivered} := + Submodule.subset_span (by simp [step]) + by_cases hx : x = r + · subst hx; simp only [step, Function.update_self] + exact Submodule.add_mem _ (hsub (h2 x)) (Submodule.smul_mem _ c hnew) + · simp only [step, Function.update_of_ne hx]; exact hsub (h2 x) + | addPO o s c => exact ⟨h1, h2⟩ + | addOO o o' c => exact ⟨h1, h2⟩ + | copyPO o s c => exact ⟨h1, h2⟩ + | copyOO o o' c => exact ⟨h1, h2⟩ + +omit [DecidableEq O] in +/-- The initial state satisfies the invariant: live `ℓ` holds `e_ℓ` in a frame containing its port, every other +public row is empty, and nothing has been delivered. -/ +theorem inv_init [DecidableEq L] (fP : P → Frame) (fO : O → Frame) (ow : O → L → R) (live : L → P) + (hlive : ∀ ℓ, port ℓ ∈ fP (live ℓ)) : + Inv port (⟨fP, fO, fun r m => if live m = r then 1 else 0, fun _ => 0, ow, []⟩ : State R L P O) := by + refine ⟨fun r m hm => ?_, fun r => Submodule.zero_mem _⟩ + by_cases h : live m = r + · subst h; exact hlive m + · simp [h] at hm + +/-- Lemma 1 along a legal run. -/ +theorem inv_run (S : State R L P O) (es : List (Event R P O)) (h : Inv port S) (hl : S.LegalRun es) : + Inv port (S.run es) := by + induction es generalizing S with + | nil => exact h + | cons e es ih => exact ih _ (inv_step port S e h hl.1) hl.2 + +/-- Corollary 2. At the end of a legal run from an invariant state, let partner `p` of live `ℓ` sit in the frame +`q_ℓ^⊥` with row `e_ℓ`, where `q_ℓ` has odd weight (`q_ℓ ⬝ᵥ q_ℓ = 1`) and `port = q`. Then its owned-delivered part +`w` lies in the span of the delivered owned rows, `w ℓ = 1`, and `w m = 0` for every `m ≠ ℓ` conflicting with `ℓ`. -/ +theorem decoding_vector [DecidableEq L] (S : State R L P O) (es : List (Event R P O)) (h : Inv port S) + (hl : S.LegalRun es) (ℓ : L) (p : P) (hodd : port ℓ ⬝ᵥ port ℓ = 1) + (hframe : (S.run es).fP p = perp (port ℓ)) (hrow : (S.run es).row p = Pi.single ℓ 1) : + (S.run es).od p ∈ Submodule.span R {v | v ∈ (S.run es).delivered} ∧ + (S.run es).od p ℓ = 1 ∧ ∀ m, m ≠ ℓ → Conflict (port m) (port ℓ) → (S.run es).od p m = 0 := by + obtain ⟨h1, h2⟩ := inv_run port S es h hl + set T := S.run es + have hlp : ∀ m, Conflict (port m) (port ℓ) → T.lp p m = 0 := by + intro m hm + by_contra hne + have := h1 p m hne + rw [hframe] at this + change port m ⬝ᵥ port ℓ = 0 at this + rw [show port m ⬝ᵥ port ℓ = 1 from hm] at this + exact one_ne_zero this + have hrm : ∀ m, T.od p m = (Pi.single ℓ (1 : R) : L → R) m - T.lp p m := by + intro m; rw [← hrow]; simp [row] + refine ⟨h2 p, ?_, fun m hm hc => ?_⟩ + · rw [hrm, hlp ℓ hodd]; simp + · rw [hrm, hlp m hc]; simp [hm] + +section Map + +variable {S' : Type*} [CommRing S'] (f : R →+* S') + +/-- Map the scalars of an event along a ring hom (e.g. dyadic rationals to `ZMod 3`). -/ +def _root_.CarrierCode.Event.map : Event R P O → Event S' P O + | .moveP r F => .moveP r F + | .moveO o F => .moveO o F + | .init o F => .init o F + | .clear o => .clear o + | .scaleP r c => .scaleP r (f c) + | .scaleO o c => .scaleO o (f c) + | .addPP r s c => .addPP r s (f c) + | .addOP r o c => .addOP r o (f c) + | .addPO o s c => .addPO o s (f c) + | .addOO o o' c => .addOO o o' (f c) + | .copyPO o s c => .copyPO o s (f c) + | .copyOO o o' c => .copyOO o o' (f c) + +/-- Map every row of a state along a ring hom. -/ +def map (S : State R L P O) : State S' L P O := + ⟨S.fP, S.fO, fun r => f ∘ S.lp r, fun r => f ∘ S.od r, fun o => f ∘ S.ow o, S.delivered.map (f ∘ ·)⟩ + +omit [DecidableEq P] [DecidableEq O] in +theorem comp_update {X : Type*} [DecidableEq X] (g : X → L → R) (x : X) (v : L → R) : + (fun y => (f : R → S') ∘ Function.update g x v y) = Function.update (fun y => (f : R → S') ∘ g y) x (f ∘ v) := by + funext y; by_cases h : y = x + · subst h; simp + · simp [Function.update_of_ne h] + +theorem step_map (S : State R L P O) (e : Event R P O) : (S.step e).map f = (S.map f).step (e.map f) := by + cases e <;> simp only [step, map, Event.map, row, comp_update] <;> congr 1 <;> + (try (congr 1; funext m; simp; try ring)) + +omit [DecidableEq P] [DecidableEq O] in +theorem legal_map (S : State R L P O) (e : Event R P O) : (S.map f).Legal (e.map f) ↔ S.Legal e := by + cases e <;> rfl + +theorem run_map (S : State R L P O) (es : List (Event R P O)) : + (S.run es).map f = (S.map f).run (es.map (Event.map f)) := by + induction es generalizing S with + | nil => rfl + | cons e es ih => simp only [run, List.map_cons]; rw [ih, step_map] + +theorem legalRun_map (S : State R L P O) (es : List (Event R P O)) : + (S.map f).LegalRun (es.map (Event.map f)) ↔ S.LegalRun es := by + induction es generalizing S with + | nil => rfl + | cons e es ih => simp only [LegalRun, List.map_cons, legal_map, ← step_map, ih] + +omit [DecidableEq P] [DecidableEq O] in +theorem row_map (S : State R L P O) (r : P) : (S.map f).row r = f ∘ S.row r := by + funext m; simp [row, map] + +end Map + +end State + +end CarrierCode diff --git a/research/p104-carrier-code-uniqueness/lean/lake-manifest.json b/research/p104-carrier-code-uniqueness/lean/lake-manifest.json new file mode 100644 index 0000000000..88757f6cc3 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/lake-manifest.json @@ -0,0 +1,117 @@ +{ + "version": "1.2.0", + "packagesDir": ".lake/packages", + "packages": [ + { + "url": "https://github.com/leanprover-community/mathlib4.git", + "type": "git", + "subDir": null, + "scope": "", + "rev": "55b7917b472489c7c56a0fa6393af05cfd536599", + "name": "mathlib", + "manifestFile": "lake-manifest.json", + "inputRev": "55b7917b472489c7c56a0fa6393af05cfd536599", + "inherited": false, + "configFile": "lakefile.lean" + }, + { + "url": "https://github.com/leanprover-community/plausible", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "b1c4a69a7e247ab7df20460212001673d74f08c0", + "name": "plausible", + "manifestFile": "lake-manifest.json", + "inputRev": "main", + "inherited": true, + "configFile": "lakefile.toml" + }, + { + "url": "https://github.com/leanprover-community/LeanSearchClient", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "0498c7c070c143a3bf7379f4d99a2c63bb9d9715", + "name": "LeanSearchClient", + "manifestFile": "lake-manifest.json", + "inputRev": "main", + "inherited": true, + "configFile": "lakefile.toml" + }, + { + "url": "https://github.com/leanprover-community/import-graph", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "18a90119a5d316358fde6c86e0ca24e59212e32c", + "name": "importGraph", + "manifestFile": "lake-manifest.json", + "inputRev": "main", + "inherited": true, + "configFile": "lakefile.toml" + }, + { + "url": "https://github.com/leanprover-community/ProofWidgets4", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "b1436dc749e722c9920036b52cdc43b3451d0b69", + "name": "proofwidgets", + "manifestFile": "lake-manifest.json", + "inputRev": "main", + "inherited": true, + "configFile": "lakefile.lean" + }, + { + "url": "https://github.com/leanprover-community/aesop", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "57d3325be72a842920813bcb40f96a6f7393c185", + "name": "aesop", + "manifestFile": "lake-manifest.json", + "inputRev": "master", + "inherited": true, + "configFile": "lakefile.toml" + }, + { + "url": "https://github.com/leanprover-community/quote4", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "ee41917ae11d38479fb8fb24745f7ca4bf0a784d", + "name": "Qq", + "manifestFile": "lake-manifest.json", + "inputRev": "master", + "inherited": true, + "configFile": "lakefile.toml" + }, + { + "url": "https://github.com/leanprover-community/batteries", + "type": "git", + "subDir": null, + "scope": "leanprover-community", + "rev": "2c810760f0a0c4536b397dbe30ca9b2f2f467366", + "name": "batteries", + "manifestFile": "lake-manifest.json", + "inputRev": "main", + "inherited": true, + "configFile": "lakefile.toml" + }, + { + "url": "https://github.com/leanprover/lean4-cli", + "type": "git", + "subDir": null, + "scope": "leanprover", + "rev": "da07ca808b6718cb2aed14dba154e5a08b8f8ecf", + "name": "Cli", + "manifestFile": "lake-manifest.json", + "inputRev": "v4.33.0-rc1", + "inherited": true, + "configFile": "lakefile.toml" + } + ], + "name": "CarrierCode", + "lakeDir": ".lake", + "fixedToolchain": false +} diff --git a/research/p104-carrier-code-uniqueness/lean/lakefile.toml b/research/p104-carrier-code-uniqueness/lean/lakefile.toml new file mode 100644 index 0000000000..e2a450f34f --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/lakefile.toml @@ -0,0 +1,10 @@ +name = "CarrierCode" +defaultTargets = ["CarrierCode"] + +[[require]] +name = "mathlib" +git = "https://github.com/leanprover-community/mathlib4.git" +rev = "55b7917b472489c7c56a0fa6393af05cfd536599" + +[[lean_lib]] +name = "CarrierCode" diff --git a/research/p104-carrier-code-uniqueness/lean/lean-toolchain b/research/p104-carrier-code-uniqueness/lean/lean-toolchain new file mode 100644 index 0000000000..fd85b262bf --- /dev/null +++ b/research/p104-carrier-code-uniqueness/lean/lean-toolchain @@ -0,0 +1 @@ +leanprover/lean4:v4.33.0-rc1 diff --git a/research/p104-carrier-code-uniqueness/replay.py b/research/p104-carrier-code-uniqueness/replay.py new file mode 100644 index 0000000000..cb77c4dbc0 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/replay.py @@ -0,0 +1,190 @@ +"""Certificate replay and code facts for the length-8 P104 decoding code. Apache-2.0. + +Prepared for Matarener with Claude (Anthropic), via Claude Code. Python 3.12, standard library only. + +replay() re-runs the enumeration of code8.Model along a pre-order certificate written by gen8.py. At every internal +node it recomputes ALL canonical consistent options of the named port and descends into one subtree per option; at a +dead node it checks that the named port has none; at a solution leaf it back-substitutes the solution. The port named +by the certificate is only a branching choice: below any node the set of completions is the disjoint union over the +options of the chosen port, so any choice gives a complete enumeration (PROOF.md, section 3). Root options are spread +over the part files by option index modulo the number of parts, exactly as gen8.py splits them. +""" +import gzip +import itertools +import time + +from code8 import Model, dot + + +def tokens(path): + raw = open(path, 'rb').read() + if path.endswith('.gz'): + raw = gzip.decompress(raw) + return iter([x for x in raw.decode('ascii').split('\n') if x]) + + +def replay(ports, streams, nparts, log=print): + """Replay certificate parts; streams maps part numbers (a subset of range(nparts)) to token iterators.""" + parts = sorted(streams) + if not parts or not set(parts) <= set(range(nparts)): + raise ValueError('bad part selection') + M = Model(ports) + st = {p: {'internal': 0, 'dead': 0, 'solutions': 0} for p in parts} + sols = []; t0 = time.time(); last = [t0] + + def node(d, rest, cls, s, rec): + if time.time() - last[0] > 60: + last[0] = time.time() + log('replay progress %.0fs %s' % (time.time() - t0, st)) + x = next(s, None) + if x is None: + raise ValueError('certificate ends early') + if x == 's': + if rest: + raise ValueError('solution token with unassigned ports') + if len(M.pivots) != M.NV: + raise ValueError('free variables at a solution leaf') + rec['solutions'] += 1; sols.append(M.solution()); return + kind, j = x.split(); j = int(j) + if j not in rest: + raise ValueError('port %d is not free' % j) + opts = M.options(j, cls) + if kind == 'd': + if opts: + raise ValueError('dead node at port %d has %d options' % (j, len(opts))) + rec['dead'] += 1; return + if kind != 'n' or not opts: + raise ValueError('bad internal node at port %d' % j) + rec['internal'] += 1 + for c in opts: + mk = M.mark() + if not M.apply(j, c): + raise ValueError('option lost consistency') + node(d + 1, rest - {j}, M.merged(j, c, cls), s, rec) + M.undo(mk) + + rest = frozenset(M.others); cls = {t: i for i, t in enumerate(M.T)} + roots = {p: next(streams[p], None) for p in parts} + if len(set(roots.values())) != 1 or not str(roots[parts[0]]).startswith('n '): + raise ValueError('parts disagree on the root') + j = int(roots[parts[0]].split()[1]); opts = M.options(j, cls) + root = {'port': j, 'options': len(opts)} + for i, c in enumerate(opts): + p = i % nparts + if p not in streams: + continue + st[p]['root_options'] = st[p].get('root_options', 0) + 1 + mk = M.mark() + if not M.apply(j, c): + raise ValueError('root option lost consistency') + node(1, rest - {j}, M.merged(j, c, cls), streams[p], st[p]) + M.undo(mk) + for p in parts: + st[p]['internal'] += 1 # the root node, counted in every part as gen8.py does + if next(streams[p], None) is not None: + raise ValueError('trailing tokens in part %d' % p) + return M, root, st, sols + + +def code_basis(M, x): + """rows w_t (t in the clique T) of the code from a solution vector x of the model""" + basis = [] + for t in M.T: + row = [0] * M.N; row[t] = 1 + for m in M.nonconf[t]: + row[m] = x[M.var[t, m]] + basis.append(row) + return basis + + +def decoding_rows(basis, ports): + """for an F_3 space with a decoding vector at every port: the vector w_l with w_l[l] = 1, zero on conflicts of l + (unique when the space restricted to the closed conflict neighbourhood is injective); None if some port fails""" + N = len(ports); k = len(basis); rows = [] + for l in range(N): + cols = [l] + [m for m in range(N) if m != l and dot(ports[l], ports[m])] + A = [[basis[i][c] for i in range(k)] + [1 if c == l else 0] for c in cols] + piv = []; r = 0 + for c in range(k): + p = next((i for i in range(r, len(A)) if A[i][c]), None) + if p is None: + continue + A[r], A[p] = A[p], A[r]; inv = pow(A[r][c], -1, 3); A[r] = [(v * inv) % 3 for v in A[r]] + for i in range(len(A)): + if i != r and A[i][c]: + f = A[i][c]; A[i] = [(v - f * y) % 3 for v, y in zip(A[i], A[r])] + piv.append(c); r += 1 + if len(piv) != k or any(not any(row[:k]) and row[k] for row in A): + return None + a = [0] * k + for i, c in enumerate(piv): + a[c] = A[i][k] + rows.append([sum(a[i] * basis[i][m] for i in range(k)) % 3 for m in range(N)]) + return rows + + +def rref3(vecs): + basis = []; piv = [] + for v in vecs: + v = [x % 3 for x in v] + for b, p in zip(basis, piv): + if v[p]: + k = v[p]; v = [(x - k * y) % 3 for x, y in zip(v, b)] + nz = [i for i, x in enumerate(v) if x] + if nz: + p = nz[0]; k = pow(v[p], -1, 3); v = [(x * k) % 3 for x in v] + for i, b in enumerate(basis): + if b[p]: + kk = b[p]; basis[i] = [(x - kk * y) % 3 for x, y in zip(b, v)] + basis.append(v); piv.append(p) + return basis + + +def weight_distribution(basis): + """Hamming weights of all nonzero vectors of the F_3 span of `basis` (rows linearly independent)""" + dist = {} + for coef in itertools.product((0, 1, 2), repeat=len(basis)): + if not any(coef): + continue + v = [sum(c * b[m] for c, b in zip(coef, basis)) % 3 for m in range(len(basis[0]))] + w = sum(1 for x in v if x); dist[w] = dist.get(w, 0) + 1 + return dist + + +def sign_equivalent(M1, M2): + """is there a diagonal d in {1, 2}^N with M2[l][m] = d_l^-1 M1[l][m] d_m for all l, m?""" + N = len(M1) + if any((M1[l][m] == 0) != (M2[l][m] == 0) for l in range(N) for m in range(N)): + return False + d = [0] * N + for s in range(N): + if d[s]: + continue + d[s] = 1; stack = [s] + while stack: + l = stack.pop() + for m in range(N): + if M1[l][m] and l != m: + want = (d[l] * M2[l][m] * pow(M1[l][m], -1, 3)) % 3 + if d[m] == 0: + d[m] = want; stack.append(m) + elif d[m] != want: + return False + return all(M2[l][m] == (pow(d[l], -1, 3) * M1[l][m] * d[m]) % 3 for l in range(N) for m in range(N)) + + +def max_ports_in_codim(ports, codim): + """f(9 - codim): the largest number of ports inside a subspace of codimension `codim` of F_2^9 (= Y^perp, dim Y = codim)""" + best = 0; seen = set() + for Y in itertools.combinations(range(1, 512), codim): + span = {0} + for y in Y: + span |= {s ^ y for s in span} + if len(span) != 1 << codim: + continue + key = frozenset(span) + if key in seen: + continue + seen.add(key) + best = max(best, sum(1 for q in ports if all(not dot(q, y) for y in Y))) + return best diff --git a/research/p104-carrier-code-uniqueness/verify.py b/research/p104-carrier-code-uniqueness/verify.py new file mode 100644 index 0000000000..53ca0b82c2 --- /dev/null +++ b/research/p104-carrier-code-uniqueness/verify.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python3 +"""Verify that the length-8 decoding code of the 104 P104 ports is unique over F_3 and has minimum weight 49. Apache-2.0. + +Prepared for Matarener with Claude (Anthropic), via Claude Code. Python 3.12, standard library only. +usage: verify.py [--parts 0,1,2,3] [--write] + +Checks: (0) pinned inputs; (1) structure: the 104 ports read from both pinned words agree, have odd weight, the +conflict graph ( = 1) is 55-regular, T_INDEX is a conflict 8-clique, and the largest numbers of ports in a +hyperplane and in a codimension-2 subspace of F_2^9 are 60 and 36; (2) the selected parts of the search certificate +(cert/part*.txt.gz, written by gen8.py) replay completely: every internal node lists all canonical consistent options of +its port, every dead node has none, no token is left over; the per-part node and solution counts equal RESULT.json and +the recorded counts over all four parts add up to exactly one solution; (3) a replayed solution has no free variable, +decodes at every port, its decoding matrix is sign-equivalent to its transpose, and the row and column spaces have +minimum weight 49 with the recorded weight distribution; (4) on both pinned words (PR5907 and the selected PR6030): +all scalars are dyadic, the Lemma-1 decomposition keeps the frame invariant and the partner endpoints, the ten +weight-52 owned deliveries span an 8-dimensional code with the decoding property whose decoding matrix is +sign-equivalent to the replayed solution (when the solution is in the selected parts) and passes the model equations; +(5) controls: one trit changed in that code breaks the model equations; a certificate whose first internal node below +the root is marked dead (its port has options) is rejected, and so is one whose first dead node is replaced by a +solution leaf; (6) the receipt equals RESULT.json. +""" +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import itertools +import json +import sys +import time + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +sys.path.insert(0, str(HERE)) +from code8 import Model, T_INDEX, dot # noqa: E402 +from replay import (code_basis, decoding_rows, max_ports_in_codim, replay, rref3, sign_equivalent, # noqa: E402 + tokens, weight_distribution) +from wordcode import decompose, dyadic, load, m3 # noqa: E402 + +WORDS = {'pr5907': 'research/p104-helper468-rung-removal/WORD.json.gz', + 'pr6030': 'research/p104-helper470-twin-rung-removal/WORD.json.gz'} +NPARTS = 4 + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def e8_root(q): + """the E8 root (A8 coordinates) of an odd port: weight 7 -> e_i - e_j at its zeros, weight 3 -> 2/3 on it, -1/3 off""" + c = [(q >> k) & 1 for k in range(9)] + if sum(c) == 7: + i, j = [k for k in range(9) if not c[k]] + return [Fraction(1) if k == i else Fraction(-1) if k == j else Fraction(0) for k in range(9)] + need(sum(c) == 3, 'ports have weight 3 or 7') + return [Fraction(2, 3) if c[k] else Fraction(-1, 3) for k in range(9)] + + +def cert(p): + return str(HERE / 'cert' / ('part%d.txt.gz' % p)) + + +def wd_json(d): + return {str(k): d[k] for k in sorted(d)} + + +def model_fixture(ports, rows): + """push a code given by its decoding rows through the model equations (after the sign gauge c_{j,first} = 1)""" + M = Model(ports) + d = [1] * M.N + for j in M.others: + first = next(t for t in M.Tj[j] if rows[j][t]) + d[j] = rows[j][first] # D^-1 M D with d_t = 1 on T makes the first coefficient 1 + g = [[(pow(d[l], -1, 3) * rows[l][m] * d[m]) % 3 for m in range(M.N)] for l in range(M.N)] + for (t, m), v in M.var.items(): + row = (1 << v) | (M.RHS if g[t][m] == 1 else 0), (M.RHS if g[t][m] == 2 else 0) + if not M.push(row): + return False + for j in M.others: + c = tuple(g[j][t] for t in M.Tj[j]) + if c not in M.OPT or not M.apply(j, c): + return False + return len(M.pivots) == M.NV + + +def tampered(p, mode): + """token stream of part p with one defect near its start: 'sol' turns the first dead node into a solution leaf, + 'dead' turns the first internal node below the root into a dead node (its port has options)""" + src = tokens(cert(p)); yield next(src); done = False + for x in src: + if not done and mode == 'sol' and x.startswith('d '): + done = True; yield 's'; continue + if not done and mode == 'dead' and x.startswith('n '): + done = True; yield 'd' + x[1:]; continue + yield x + + +def expect_failure(fn, text): + try: + fn() + except ValueError as ex: + need(text in str(ex), 'expected rejection "%s", got "%s"' % (text, ex)) + return str(ex) + raise ValueError('control accepted: ' + text) + + +def main(argv): + t0 = time.time() + parts = list(range(NPARTS)); write = '--write' in argv + if '--parts' in argv: + parts = sorted({int(x) for x in argv[argv.index('--parts') + 1].split(',')}) + pins = json.loads((HERE / 'SOURCES.json').read_text()) + for row in pins['files']: + if row['usage'] == 'input': + need(sha256((ROOT / row['path']).read_bytes()).hexdigest() == row['sha256'], 'source pin ' + row['path']) + print('pins ok', flush=True) + R = {'parts': {}} + + # (1) structure + words = {k: load(ROOT / v) for k, v in WORDS.items()} + port_lists = {} + for k, w in words.items(): + ports, W, D = decompose(w) + port_lists[k] = ports + ports = port_lists['pr5907'] + need(port_lists['pr6030'] == ports, 'the two words have the same ports in the same live order') + need(len(set(ports)) == 104 and all(bin(q).count('1') & 1 for q in ports), 'ports: 104 distinct odd vectors') + degrees = {sum(1 for m in ports if m != q and dot(q, m)) for q in ports} + need(degrees == {55}, 'conflict graph is 55-regular') + need(all(dot(ports[a], ports[b]) for a in T_INDEX for b in T_INDEX if a != b), 'T is a conflict clique') + f8, f7 = max_ports_in_codim(ports, 1), max_ports_in_codim(ports, 2) + need((f8, f7) == (60, 36), 'f(8) = 60 and f(7) = 36') + roots = [e8_root(q) for q in ports] + G = [[sum(x * y for x, y in zip(a, b)) for b in roots] for a in roots] + need(all(G[i][i] == 2 for i in range(104)), 'E8 roots have norm 2') + need(all((G[i][j] == 0) == bool(dot(ports[i], ports[j])) for i in range(104) for j in range(104) if i != j), + 'conflict is orthogonality of E8 roots') + e8_half = [[m3(x / 2) for x in r] for r in G] + R['structure'] = {'ports': 104, 'conflict_degree': 55, 'clique': T_INDEX, 'f8_hyperplane': f8, 'f7_codim2': f7, + 'e8_root_lines': 104, 'conflict_is_e8_orthogonality': True} + print('structure', R['structure'], flush=True) + + # (4) the words + R['words'] = {}; word_rows = {} + for k, w in words.items(): + need(dyadic(w), k + ': all scalars dyadic') + _, W, D = decompose(w) + W3 = [[m3(x) for x in r] for r in W] + heavy = sorted(v for v, s in D.items() if s == 52) + B = rref3(heavy); rows = decoding_rows(B, ports) + need(len(B) == 8 and rows is not None, k + ': weight-52 deliveries span an 8-dim decoding code') + need(model_fixture(ports, rows), k + ': the code passes the model equations') + word_rows[k] = rows + R['words'][k] = {'path': WORDS[k], 'dyadic': True, 'owned_deliveries': len(D), + 'delivery_supports': sorted(D.values()), 'weight52_deliveries': len(heavy), + 'weight52_rank': len(B), 'all_deliveries_rank_mod3': len(rref3(list(D))), + 'partner_owned_parts_rank_mod3': len(rref3(W3)), + 'partner_owned_parts_inside_code': len(rref3(B + W3)) == 8, + 'code_weight_distribution': wd_json(weight_distribution(B))} + print(k, R['words'][k], flush=True) + need(sign_equivalent(word_rows['pr5907'], word_rows['pr6030']), 'the two words carry sign-equivalent codes') + need(sign_equivalent(e8_half, word_rows['pr5907']), 'the word code is the E8 Gram matrix / 2 mod 3, up to signs') + R['words']['e8_gram_half_sign_equivalent'] = True + + # (5) controls that do not need the certificate + bad = [r[:] for r in word_rows['pr5907']] + t = T_INDEX[0]; m = next(m for m in range(104) if m != t and not dot(ports[t], ports[m])) + bad[t][m] = (bad[t][m] + 1) % 3 + need(not model_fixture(ports, bad), 'control: one changed trit breaks the model equations') + R['controls'] = {'changed_trit_rejected': True} + + # (2) certificate replay + M, root, st, sols = replay(ports, {p: tokens(cert(p)) for p in parts}, NPARTS) + R['root'] = root + for p in parts: + R['parts'][str(p)] = st[p] + print('replayed parts', parts, R['parts'], '%.0fs' % (time.time() - t0), flush=True) + + # (3) the solution + if sols: + need(len(sols) == 1, 'one solution') + basis = code_basis(M, sols[0]); rows = decoding_rows(basis, ports) + need(rows is not None, 'the solution decodes at every port') + cols = [[rows[l][m] for l in range(104)] for m in range(104)] + need(sign_equivalent(rows, cols), 'decoding matrix is sign-equivalent to its transpose') + wr, wc = weight_distribution(rref3(rows)), weight_distribution(rref3(cols)) + need(min(wr) == 49 and wr == wc and len(rref3(cols)) == 8, 'row and column codes: dim 8, minimum weight 49') + for k in WORDS: + need(sign_equivalent(rows, word_rows[k]), k + ': word code is sign-equivalent to the solution') + R['solution'] = {'free_variables': 0, # replay rejects a leaf with free variables + 'decodes': True, 'symmetric_up_to_signs': True, + 'weight_distribution': wd_json(wr), 'min_weight': min(wr), + 'sign_equivalent_to': sorted(WORDS)} + print('solution', R['solution'], flush=True) + + # (5) certificate controls on the first selected part + p = parts[0] + R['controls']['dead_node_with_options_rejected'] = bool(expect_failure( + lambda: replay(ports, {p: tampered(p, 'dead')}, NPARTS), 'options')) + R['controls']['early_solution_leaf_rejected'] = bool(expect_failure( + lambda: replay(ports, {p: tampered(p, 'sol')}, NPARTS), 'unassigned ports')) + + # (6) receipt + path = HERE / 'RESULT.json' + old = json.loads(path.read_text()) if path.exists() else {} + if write: + merged = dict(old); merged.update({k: v for k, v in R.items() if k != 'parts'}) + merged['parts'] = dict(old.get('parts', {})); merged['parts'].update(R['parts']) + path.write_text(json.dumps(merged, indent=1, sort_keys=True) + '\n'); old = merged + for k, v in R.items(): + if k == 'parts': + for p, s in v.items(): + need(old['parts'].get(p) == s, 'RESULT.json part ' + p) + else: + need(old.get(k) == v, 'RESULT.json section ' + k) + need(sorted(old['parts']) == [str(p) for p in range(NPARTS)], 'RESULT.json records all parts') + need(sum(s['solutions'] for s in old['parts'].values()) == 1, 'exactly one solution over all parts') + need(sum(s['root_options'] for s in old['parts'].values()) == old['root']['options'], 'root options covered') + print('PASS_P104_CARRIER_CODE_UNIQUENESS parts %s, %.0fs' % (parts, time.time() - t0), flush=True) + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/research/p104-carrier-code-uniqueness/wordcode.py b/research/p104-carrier-code-uniqueness/wordcode.py new file mode 100644 index 0000000000..9b9410b07b --- /dev/null +++ b/research/p104-carrier-code-uniqueness/wordcode.py @@ -0,0 +1,112 @@ +"""The owned-delivery code of an actual P104 local word (accumulated-block schema 2). Apache-2.0. + +Prepared for Matarener with Claude (Anthropic), via Claude Code. Python 3.12, standard library only. + +decompose() replays the word with exact rationals and splits every public row into a lives-in-frame part and an +owned-delivered part (Lemma 1 of PROOF.md): the lives-in-frame part only grows by ADDs between public roles, which share +a frame, so its live coordinates always sit on ports of the role's current frame; everything a public role receives +from an owned field goes to the owned-delivered part. The function checks that invariant after every event, checks +the partner endpoints (the live projection of partner l + 112 is e_l), and returns the owned-delivered parts w_l of the +104 partners together with every distinct owned-to-public delivered vector (live coordinates). +""" +from fractions import Fraction as Q +import gzip +import json + + +def load(path): + return json.loads(gzip.decompress(open(path, 'rb').read())) + + +def spans(w): + out = [] + for basis in w['frames']: + s = {0} + for v in basis: + s |= {x ^ v for x in s} + out.append(frozenset(s)) + return out + + +def dyadic(w): + """True when every scalar of the program lies in Z[1/2] (so every row is 3-integral)""" + for e in w['program']: + if e[0] in ('ADD', 'COPY', 'SCALE'): + q = Q(e[-2]); d = q.denominator + if q == 0 or d & (d - 1): + return False + return True + + +def m3(q): + return (q.numerator * pow(q.denominator, -1, 3)) % 3 + + +def decompose(w): + S = spans(w); n, m = w['public'], w['owned_fields'] + live = sorted(w['live']) + port = {l: [x for x in S[w['initial'][l]] if x][0] for l in live} + cur = list(w['initial']) + [None] * m + lp = [dict() for _ in range(n)] # lives-in-frame part of every public role (keys: live roles) + od = [dict() for _ in range(n)] # owned-delivered part of every public role + orow = [dict() for _ in range(m)] # owned rows (live coordinates) + for l in live: + lp[l] = {l: Q(1)} + deliveries = {} + + def addto(t, src, q): + for k, v in src.items(): + x = t.get(k, 0) + q * v + if x: + t[k] = x + else: + t.pop(k, None) + + for i, e in enumerate(w['program']): + op, r = e[0], e[1] + if op == 'MOVE': + cur[r] = e[3]; continue + if op in ('INIT', 'CLEAR'): + if r < n: + raise ValueError('INIT/CLEAR on a public role at event %d' % i) + orow[r - n] = {}; cur[r] = e[2] if op == 'INIT' else None; continue + q = Q(e[-2]) + if op == 'SCALE': + if r < n: + lp[r] = {k: q * v for k, v in lp[r].items()}; od[r] = {k: q * v for k, v in od[r].items()} + else: + orow[r - n] = {k: q * v for k, v in orow[r - n].items()} + continue + s = e[2] + if r < n: + if op == 'COPY': + raise ValueError('COPY into a public role at event %d' % i) + if s < n: + addto(lp[r], lp[s], q); addto(od[r], od[s], q) + else: + addto(od[r], orow[s - n], q) + vec = tuple(orow[s - n].get(l, Q(0)) for l in live) + if any(vec): + key = tuple(m3(x) for x in vec) + deliveries.setdefault(key, sum(1 for x in vec if x)) + F = S[cur[r]] + if not all(port[k] in F for k in lp[r]): + raise ValueError('frame invariant broken at event %d' % i) + else: + t = {} if op == 'COPY' else orow[r - n] + if s < n: + addto(t, lp[s], q); addto(t, od[s], q) + else: + addto(t, orow[s - n], q) + orow[r - n] = t + W = [] + for l in live: + p = l + 112 + F = S[cur[p]] + if not (all(port[k] in F for k in lp[p]) and l not in lp[p]): + raise ValueError('partner %d: lives-in-frame part leaves its frame or contains its own live' % p) + full = dict(lp[p]); addto(full, od[p], Q(1)) + if full != {l: Q(1)}: + raise ValueError('partner %d: live projection is not e_l' % p) + W.append([od[p].get(k, Q(0)) for k in live]) + return [port[l] for l in live], W, deliveries