passagemath-graphs 10.6.1rc1__cp310-cp310-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- passagemath_graphs-10.6.1rc1.dist-info/METADATA +292 -0
- passagemath_graphs-10.6.1rc1.dist-info/RECORD +260 -0
- passagemath_graphs-10.6.1rc1.dist-info/WHEEL +5 -0
- passagemath_graphs-10.6.1rc1.dist-info/top_level.txt +2 -0
- passagemath_graphs.libs/libgcc_s-69c45f16.so.1 +0 -0
- passagemath_graphs.libs/libgmp-8e78bd9b.so.10.5.0 +0 -0
- passagemath_graphs.libs/libstdc++-1f1a71be.so.6.0.33 +0 -0
- sage/all__sagemath_graphs.py +39 -0
- sage/combinat/abstract_tree.py +2723 -0
- sage/combinat/all__sagemath_graphs.py +34 -0
- sage/combinat/binary_tree.py +5306 -0
- sage/combinat/cluster_algebra_quiver/all.py +22 -0
- sage/combinat/cluster_algebra_quiver/cluster_seed.py +5208 -0
- sage/combinat/cluster_algebra_quiver/interact.py +124 -0
- sage/combinat/cluster_algebra_quiver/mutation_class.py +625 -0
- sage/combinat/cluster_algebra_quiver/mutation_type.py +1555 -0
- sage/combinat/cluster_algebra_quiver/quiver.py +2290 -0
- sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py +2468 -0
- sage/combinat/designs/MOLS_handbook_data.py +570 -0
- sage/combinat/designs/all.py +58 -0
- sage/combinat/designs/bibd.py +1655 -0
- sage/combinat/designs/block_design.py +1071 -0
- sage/combinat/designs/covering_array.py +269 -0
- sage/combinat/designs/covering_design.py +530 -0
- sage/combinat/designs/database.py +5615 -0
- sage/combinat/designs/design_catalog.py +122 -0
- sage/combinat/designs/designs_pyx.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/designs_pyx.pxd +21 -0
- sage/combinat/designs/designs_pyx.pyx +993 -0
- sage/combinat/designs/difference_family.py +3951 -0
- sage/combinat/designs/difference_matrices.py +279 -0
- sage/combinat/designs/evenly_distributed_sets.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/evenly_distributed_sets.pyx +661 -0
- sage/combinat/designs/ext_rep.py +1064 -0
- sage/combinat/designs/gen_quadrangles_with_spread.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/gen_quadrangles_with_spread.pyx +339 -0
- sage/combinat/designs/group_divisible_designs.py +361 -0
- sage/combinat/designs/incidence_structures.py +2357 -0
- sage/combinat/designs/latin_squares.py +581 -0
- sage/combinat/designs/orthogonal_arrays.py +2244 -0
- sage/combinat/designs/orthogonal_arrays_build_recursive.py +1780 -0
- sage/combinat/designs/orthogonal_arrays_find_recursive.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/orthogonal_arrays_find_recursive.pyx +967 -0
- sage/combinat/designs/resolvable_bibd.py +815 -0
- sage/combinat/designs/steiner_quadruple_systems.py +1306 -0
- sage/combinat/designs/subhypergraph_search.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/subhypergraph_search.pyx +530 -0
- sage/combinat/designs/twographs.py +306 -0
- sage/combinat/finite_state_machine.py +14874 -0
- sage/combinat/finite_state_machine_generators.py +2006 -0
- sage/combinat/graph_path.py +448 -0
- sage/combinat/interval_posets.py +3908 -0
- sage/combinat/nu_tamari_lattice.py +269 -0
- sage/combinat/ordered_tree.py +1446 -0
- sage/combinat/posets/all.py +46 -0
- sage/combinat/posets/bubble_shuffle.py +247 -0
- sage/combinat/posets/cartesian_product.py +493 -0
- sage/combinat/posets/d_complete.py +182 -0
- sage/combinat/posets/elements.py +273 -0
- sage/combinat/posets/forest.py +30 -0
- sage/combinat/posets/hasse_cython.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/posets/hasse_cython.pyx +174 -0
- sage/combinat/posets/hasse_diagram.py +3672 -0
- sage/combinat/posets/hochschild_lattice.py +158 -0
- sage/combinat/posets/incidence_algebras.py +794 -0
- sage/combinat/posets/lattices.py +5117 -0
- sage/combinat/posets/linear_extension_iterator.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/posets/linear_extension_iterator.pyx +292 -0
- sage/combinat/posets/linear_extensions.py +1037 -0
- sage/combinat/posets/mobile.py +275 -0
- sage/combinat/posets/moebius_algebra.py +776 -0
- sage/combinat/posets/poset_examples.py +2178 -0
- sage/combinat/posets/posets.py +9360 -0
- sage/combinat/rooted_tree.py +1070 -0
- sage/combinat/shard_order.py +239 -0
- sage/combinat/tamari_lattices.py +384 -0
- sage/combinat/yang_baxter_graph.py +923 -0
- sage/databases/all__sagemath_graphs.py +1 -0
- sage/databases/knotinfo_db.py +1231 -0
- sage/ext_data/all__sagemath_graphs.py +1 -0
- sage/ext_data/graphs/graph_plot_js.html +330 -0
- sage/ext_data/kenzo/CP2.txt +45 -0
- sage/ext_data/kenzo/CP3.txt +349 -0
- sage/ext_data/kenzo/CP4.txt +4774 -0
- sage/ext_data/kenzo/README.txt +49 -0
- sage/ext_data/kenzo/S4.txt +20 -0
- sage/graphs/all.py +42 -0
- sage/graphs/asteroidal_triples.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/asteroidal_triples.pyx +320 -0
- sage/graphs/base/all.py +1 -0
- sage/graphs/base/boost_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/boost_graph.pxd +106 -0
- sage/graphs/base/boost_graph.pyx +3045 -0
- sage/graphs/base/c_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/c_graph.pxd +106 -0
- sage/graphs/base/c_graph.pyx +5096 -0
- sage/graphs/base/dense_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/dense_graph.pxd +28 -0
- sage/graphs/base/dense_graph.pyx +801 -0
- sage/graphs/base/graph_backends.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/graph_backends.pxd +5 -0
- sage/graphs/base/graph_backends.pyx +797 -0
- sage/graphs/base/overview.py +85 -0
- sage/graphs/base/sparse_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/sparse_graph.pxd +90 -0
- sage/graphs/base/sparse_graph.pyx +1653 -0
- sage/graphs/base/static_dense_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/static_dense_graph.pxd +5 -0
- sage/graphs/base/static_dense_graph.pyx +1032 -0
- sage/graphs/base/static_sparse_backend.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/static_sparse_backend.pxd +27 -0
- sage/graphs/base/static_sparse_backend.pyx +1583 -0
- sage/graphs/base/static_sparse_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/static_sparse_graph.pxd +37 -0
- sage/graphs/base/static_sparse_graph.pyx +1375 -0
- sage/graphs/bipartite_graph.py +2732 -0
- sage/graphs/centrality.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/centrality.pyx +1038 -0
- sage/graphs/cographs.py +519 -0
- sage/graphs/comparability.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/comparability.pyx +851 -0
- sage/graphs/connectivity.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/connectivity.pxd +157 -0
- sage/graphs/connectivity.pyx +4813 -0
- sage/graphs/convexity_properties.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/convexity_properties.pxd +16 -0
- sage/graphs/convexity_properties.pyx +870 -0
- sage/graphs/digraph.py +4754 -0
- sage/graphs/digraph_generators.py +1993 -0
- sage/graphs/distances_all_pairs.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/distances_all_pairs.pxd +12 -0
- sage/graphs/distances_all_pairs.pyx +2938 -0
- sage/graphs/domination.py +1363 -0
- sage/graphs/dot2tex_utils.py +100 -0
- sage/graphs/edge_connectivity.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/edge_connectivity.pyx +1215 -0
- sage/graphs/generators/all.py +1 -0
- sage/graphs/generators/basic.py +1769 -0
- sage/graphs/generators/chessboard.py +538 -0
- sage/graphs/generators/classical_geometries.py +1611 -0
- sage/graphs/generators/degree_sequence.py +235 -0
- sage/graphs/generators/distance_regular.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/generators/distance_regular.pyx +2846 -0
- sage/graphs/generators/families.py +4759 -0
- sage/graphs/generators/intersection.py +565 -0
- sage/graphs/generators/platonic_solids.py +262 -0
- sage/graphs/generators/random.py +2623 -0
- sage/graphs/generators/smallgraphs.py +5741 -0
- sage/graphs/generators/world_map.py +724 -0
- sage/graphs/generic_graph.py +26867 -0
- sage/graphs/generic_graph_pyx.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/generic_graph_pyx.pxd +34 -0
- sage/graphs/generic_graph_pyx.pyx +1673 -0
- sage/graphs/genus.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/genus.pyx +622 -0
- sage/graphs/graph.py +9645 -0
- sage/graphs/graph_coloring.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_coloring.pyx +2284 -0
- sage/graphs/graph_database.py +1177 -0
- sage/graphs/graph_decompositions/all.py +1 -0
- sage/graphs/graph_decompositions/bandwidth.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/bandwidth.pyx +428 -0
- sage/graphs/graph_decompositions/clique_separators.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/clique_separators.pyx +616 -0
- sage/graphs/graph_decompositions/cutwidth.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/cutwidth.pyx +753 -0
- sage/graphs/graph_decompositions/fast_digraph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/fast_digraph.pxd +13 -0
- sage/graphs/graph_decompositions/fast_digraph.pyx +212 -0
- sage/graphs/graph_decompositions/graph_products.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/graph_products.pyx +508 -0
- sage/graphs/graph_decompositions/modular_decomposition.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/modular_decomposition.pxd +27 -0
- sage/graphs/graph_decompositions/modular_decomposition.pyx +1536 -0
- sage/graphs/graph_decompositions/slice_decomposition.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/slice_decomposition.pxd +18 -0
- sage/graphs/graph_decompositions/slice_decomposition.pyx +1106 -0
- sage/graphs/graph_decompositions/tree_decomposition.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/tree_decomposition.pxd +17 -0
- sage/graphs/graph_decompositions/tree_decomposition.pyx +1996 -0
- sage/graphs/graph_decompositions/vertex_separation.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/vertex_separation.pxd +5 -0
- sage/graphs/graph_decompositions/vertex_separation.pyx +1963 -0
- sage/graphs/graph_editor.py +82 -0
- sage/graphs/graph_generators.py +3314 -0
- sage/graphs/graph_generators_pyx.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_generators_pyx.pyx +95 -0
- sage/graphs/graph_input.py +812 -0
- sage/graphs/graph_latex.py +2064 -0
- sage/graphs/graph_list.py +410 -0
- sage/graphs/graph_plot.py +1756 -0
- sage/graphs/graph_plot_js.py +338 -0
- sage/graphs/hyperbolicity.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/hyperbolicity.pyx +1704 -0
- sage/graphs/hypergraph_generators.py +364 -0
- sage/graphs/independent_sets.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/independent_sets.pxd +13 -0
- sage/graphs/independent_sets.pyx +402 -0
- sage/graphs/isgci.py +1033 -0
- sage/graphs/isoperimetric_inequalities.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/isoperimetric_inequalities.pyx +489 -0
- sage/graphs/line_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/line_graph.pyx +743 -0
- sage/graphs/lovasz_theta.py +77 -0
- sage/graphs/matching.py +1633 -0
- sage/graphs/matching_covered_graph.py +3590 -0
- sage/graphs/orientations.py +1489 -0
- sage/graphs/partial_cube.py +459 -0
- sage/graphs/path_enumeration.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/path_enumeration.pyx +2040 -0
- sage/graphs/pq_trees.py +1129 -0
- sage/graphs/print_graphs.py +201 -0
- sage/graphs/schnyder.py +865 -0
- sage/graphs/spanning_tree.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/spanning_tree.pyx +1457 -0
- sage/graphs/strongly_regular_db.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/strongly_regular_db.pyx +3340 -0
- sage/graphs/traversals.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/traversals.pxd +9 -0
- sage/graphs/traversals.pyx +1872 -0
- sage/graphs/trees.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/trees.pxd +15 -0
- sage/graphs/trees.pyx +310 -0
- sage/graphs/tutte_polynomial.py +713 -0
- sage/graphs/views.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/views.pyx +794 -0
- sage/graphs/weakly_chordal.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/weakly_chordal.pyx +604 -0
- sage/groups/all__sagemath_graphs.py +1 -0
- sage/groups/perm_gps/all__sagemath_graphs.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_graphs.py +1 -0
- sage/groups/perm_gps/partn_ref/refinement_graphs.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_graphs.pxd +38 -0
- sage/groups/perm_gps/partn_ref/refinement_graphs.pyx +1666 -0
- sage/knots/all.py +6 -0
- sage/knots/free_knotinfo_monoid.py +507 -0
- sage/knots/gauss_code.py +291 -0
- sage/knots/knot.py +682 -0
- sage/knots/knot_table.py +284 -0
- sage/knots/knotinfo.py +2900 -0
- sage/knots/link.py +4715 -0
- sage/sandpiles/all.py +13 -0
- sage/sandpiles/examples.py +225 -0
- sage/sandpiles/sandpile.py +6365 -0
- sage/topology/all.py +22 -0
- sage/topology/cell_complex.py +1214 -0
- sage/topology/cubical_complex.py +1976 -0
- sage/topology/delta_complex.py +1806 -0
- sage/topology/filtered_simplicial_complex.py +744 -0
- sage/topology/moment_angle_complex.py +823 -0
- sage/topology/simplicial_complex.py +5160 -0
- sage/topology/simplicial_complex_catalog.py +92 -0
- sage/topology/simplicial_complex_examples.py +1680 -0
- sage/topology/simplicial_complex_homset.py +205 -0
- sage/topology/simplicial_complex_morphism.py +836 -0
- sage/topology/simplicial_set.py +4102 -0
- sage/topology/simplicial_set_catalog.py +55 -0
- sage/topology/simplicial_set_constructions.py +2954 -0
- sage/topology/simplicial_set_examples.py +865 -0
- sage/topology/simplicial_set_morphism.py +1464 -0
@@ -0,0 +1,1306 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-graphs
|
2
|
+
r"""
|
3
|
+
Steiner quadruple systems
|
4
|
+
|
5
|
+
A Steiner Quadruple System on `n` points is a family `SQS_n \subset \binom {[n]}
|
6
|
+
4` of `4`-sets, such that any set `S\subset [n]` of size three is a subset of
|
7
|
+
exactly one member of `SQS_n`.
|
8
|
+
|
9
|
+
This module implements Haim Hanani's constructive proof that a Steiner Quadruple
|
10
|
+
System exists if and only if `n\equiv 2,4 \pmod 6`. Hanani's proof consists in 6
|
11
|
+
different constructions that build a large Steiner Quadruple System from a smaller
|
12
|
+
one, and though it does not give a very clear understanding of why it works (to say the
|
13
|
+
least)... it does !
|
14
|
+
|
15
|
+
The constructions have been implemented while reading two papers simultaneously,
|
16
|
+
for one of them sometimes provides the informations that the other one does
|
17
|
+
not. The first one is Haim Hanani's original paper [Han1960]_, and the other
|
18
|
+
one is a paper from Horan and Hurlbert which goes through all constructions
|
19
|
+
[HH2012]_.
|
20
|
+
|
21
|
+
It can be used through the ``designs`` object::
|
22
|
+
|
23
|
+
sage: designs.steiner_quadruple_system(8)
|
24
|
+
Incidence structure with 8 points and 14 blocks
|
25
|
+
|
26
|
+
AUTHORS:
|
27
|
+
|
28
|
+
- Nathann Cohen (May 2013, while listening to "*Le Blues Du Pauvre Delahaye*")
|
29
|
+
|
30
|
+
Index
|
31
|
+
-----
|
32
|
+
|
33
|
+
This module's main function is the following:
|
34
|
+
|
35
|
+
.. csv-table::
|
36
|
+
:class: contentstable
|
37
|
+
:widths: 15, 20, 65
|
38
|
+
:delim: |
|
39
|
+
|
40
|
+
| :func:`steiner_quadruple_system` | Return a Steiner Quadruple System on `n` points
|
41
|
+
|
42
|
+
This function redistributes its work among 6 constructions:
|
43
|
+
|
44
|
+
.. csv-table::
|
45
|
+
:class: contentstable
|
46
|
+
:widths: 15, 20, 65
|
47
|
+
:delim: |
|
48
|
+
|
49
|
+
Construction `1` | :func:`two_n` | Return a Steiner Quadruple System on `2n` points
|
50
|
+
Construction `2` | :func:`three_n_minus_two` | Return a Steiner Quadruple System on `3n-2` points
|
51
|
+
Construction `3` | :func:`three_n_minus_eight` | Return a Steiner Quadruple System on `3n-8` points
|
52
|
+
Construction `4` | :func:`three_n_minus_four` | Return a Steiner Quadruple System on `3n-4` points
|
53
|
+
Construction `5` | :func:`four_n_minus_six` | Return a Steiner Quadruple System on `4n-6` points
|
54
|
+
Construction `6` | :func:`twelve_n_minus_ten` | Return a Steiner Quadruple System on `12n-10` points
|
55
|
+
|
56
|
+
It also defines two specific Steiner Quadruple Systems that the constructions
|
57
|
+
require, i.e. `SQS_{14}` and `SQS_{38}` as well as the systems of pairs
|
58
|
+
`P_{\alpha}(m)` and `\overline P_{\alpha}(m)` (see [Han1960]_).
|
59
|
+
|
60
|
+
Functions
|
61
|
+
---------
|
62
|
+
"""
|
63
|
+
from itertools import repeat
|
64
|
+
from sage.misc.cachefunc import cached_function
|
65
|
+
from sage.combinat.designs.incidence_structures import IncidenceStructure
|
66
|
+
|
67
|
+
# Construction 1
|
68
|
+
|
69
|
+
|
70
|
+
def two_n(B):
|
71
|
+
r"""
|
72
|
+
Return a Steiner Quadruple System on `2n` points.
|
73
|
+
|
74
|
+
INPUT:
|
75
|
+
|
76
|
+
- ``B`` -- a Steiner Quadruple System on `n` points
|
77
|
+
|
78
|
+
EXAMPLES::
|
79
|
+
|
80
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import two_n
|
81
|
+
sage: for n in range(4, 30):
|
82
|
+
....: if (n%6) in [2,4]:
|
83
|
+
....: sqs = designs.steiner_quadruple_system(n)
|
84
|
+
....: if not two_n(sqs).is_t_design(3,2*n,4,1):
|
85
|
+
....: print("Something is wrong !")
|
86
|
+
"""
|
87
|
+
n = B.num_points()
|
88
|
+
Y = []
|
89
|
+
|
90
|
+
# Line 1
|
91
|
+
for x,y,z,t in B._blocks:
|
92
|
+
for a in range(2):
|
93
|
+
for b in range(2):
|
94
|
+
for c in range(2):
|
95
|
+
d = (a+b+c) % 2
|
96
|
+
Y.append([x+a*n,y+b*n,z+c*n,t+d*n])
|
97
|
+
|
98
|
+
# Line 2
|
99
|
+
for j in range(n):
|
100
|
+
for jj in range(j+1,n):
|
101
|
+
Y.append([j,jj,n+j,n+jj])
|
102
|
+
|
103
|
+
return IncidenceStructure(2*n,Y,check=False,copy=False)
|
104
|
+
|
105
|
+
# Construction 2
|
106
|
+
|
107
|
+
|
108
|
+
def three_n_minus_two(B):
|
109
|
+
"""
|
110
|
+
Return a Steiner Quadruple System on `3n-2` points.
|
111
|
+
|
112
|
+
INPUT:
|
113
|
+
|
114
|
+
- ``B`` -- a Steiner Quadruple System on `n` points
|
115
|
+
|
116
|
+
EXAMPLES::
|
117
|
+
|
118
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import three_n_minus_two
|
119
|
+
sage: for n in range(4, 30):
|
120
|
+
....: if (n%6) in [2,4]:
|
121
|
+
....: sqs = designs.steiner_quadruple_system(n)
|
122
|
+
....: if not three_n_minus_two(sqs).is_t_design(3,3*n-2,4,1):
|
123
|
+
....: print("Something is wrong !")
|
124
|
+
"""
|
125
|
+
n = B.num_points()
|
126
|
+
A = n-1
|
127
|
+
Y = []
|
128
|
+
# relabel function
|
129
|
+
r = lambda i,x : (i % 3)*(n-1)+x
|
130
|
+
for x,y,z,t in B._blocks:
|
131
|
+
if t == A:
|
132
|
+
# Line 2.
|
133
|
+
for a in range(3):
|
134
|
+
for b in range(3):
|
135
|
+
c = -(a+b) % 3
|
136
|
+
Y.append([r(a,x),r(b,y),r(c,z),3*n-3])
|
137
|
+
|
138
|
+
# Line 3.
|
139
|
+
Y.extend([[r(i,x),r(i,y),r(i+1,z),r(i+2,z)] for i in range(3)])
|
140
|
+
Y.extend([[r(i,x),r(i,z),r(i+1,y),r(i+2,y)] for i in range(3)])
|
141
|
+
Y.extend([[r(i,y),r(i,z),r(i+1,x),r(i+2,x)] for i in range(3)])
|
142
|
+
|
143
|
+
else:
|
144
|
+
# Line 1.
|
145
|
+
for a in range(3):
|
146
|
+
for b in range(3):
|
147
|
+
for c in range(3):
|
148
|
+
d = -(a+b+c) % 3
|
149
|
+
Y.append([r(a,x),r(b,y),r(c,z),r(d,t)])
|
150
|
+
|
151
|
+
# Line 4.
|
152
|
+
for j in range(n-1):
|
153
|
+
for jj in range(j+1,n-1):
|
154
|
+
Y.extend([[r(i,j),r(i,jj),r(i+1,j),r(i+1,jj)] for i in range(3)])
|
155
|
+
|
156
|
+
# Line 5.
|
157
|
+
for j in range(n-1):
|
158
|
+
Y.append([r(0,j),r(1,j),r(2,j),3*n-3])
|
159
|
+
|
160
|
+
return IncidenceStructure(3*n-2,Y,check=False,copy=False)
|
161
|
+
|
162
|
+
# Construction 3
|
163
|
+
|
164
|
+
|
165
|
+
def three_n_minus_eight(B):
|
166
|
+
r"""
|
167
|
+
Return a Steiner Quadruple System on `3n-8` points.
|
168
|
+
|
169
|
+
INPUT:
|
170
|
+
|
171
|
+
- ``B`` -- a Steiner Quadruple System on `n` points
|
172
|
+
|
173
|
+
EXAMPLES::
|
174
|
+
|
175
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import three_n_minus_eight
|
176
|
+
sage: for n in range(4, 30):
|
177
|
+
....: if (n%12) == 2:
|
178
|
+
....: sqs = designs.steiner_quadruple_system(n)
|
179
|
+
....: if not three_n_minus_eight(sqs).is_t_design(3,3*n-8,4,1):
|
180
|
+
....: print("Something is wrong !")
|
181
|
+
"""
|
182
|
+
n = B.num_points()
|
183
|
+
|
184
|
+
if (n % 12) != 2:
|
185
|
+
raise ValueError("n must be equal to 2 mod 12")
|
186
|
+
|
187
|
+
B = relabel_system(B)
|
188
|
+
r = lambda i,x : (i % 3)*(n-4)+(x % (n-4))
|
189
|
+
|
190
|
+
# Line 1.
|
191
|
+
Y = [[x+2*(n-4) for x in B._blocks[-1]]]
|
192
|
+
|
193
|
+
# Line 2.
|
194
|
+
for s in B._blocks[:-1]:
|
195
|
+
for i in range(3):
|
196
|
+
Y.append([r(i,x) if x <= n-5 else x+2*(n-4) for x in s])
|
197
|
+
|
198
|
+
# Line 3.
|
199
|
+
for a in range(4):
|
200
|
+
for aa in range(n-4):
|
201
|
+
for aaa in range(n-4):
|
202
|
+
aaaa = -(a+aa+aaa) % (n-4)
|
203
|
+
Y.append([r(0,aa),r(1,aaa), r(2,aaaa),3*(n-4)+a])
|
204
|
+
|
205
|
+
# Line 4.
|
206
|
+
k = (n-14) // 12
|
207
|
+
for i in range(3):
|
208
|
+
for b in range(n-4):
|
209
|
+
for bb in range(n-4):
|
210
|
+
bbb = -(b+bb) % (n-4)
|
211
|
+
for d in range(2*k+1):
|
212
|
+
Y.append([r(i+2,bbb), r(i, b+2*k+1+i*(4*k+2)-d) , r(i, b+2*k+2+i*(4*k+2)+d), r(i+1,bb)])
|
213
|
+
|
214
|
+
# Line 5.
|
215
|
+
for i in range(3):
|
216
|
+
for alpha in range(4*k+2, 12*k+9):
|
217
|
+
for ra,sa in P(alpha,6*k+5):
|
218
|
+
for raa,saa in P(alpha,6*k+5):
|
219
|
+
Y.append([r(i,ra),r(i,sa),r(i+1,raa), r(i+1,saa)])
|
220
|
+
|
221
|
+
return IncidenceStructure(3*n-8,Y,check=False,copy=False)
|
222
|
+
|
223
|
+
# Construction 4
|
224
|
+
|
225
|
+
|
226
|
+
def three_n_minus_four(B):
|
227
|
+
r"""
|
228
|
+
Return a Steiner Quadruple System on `3n-4` points.
|
229
|
+
|
230
|
+
INPUT:
|
231
|
+
|
232
|
+
- ``B`` -- a Steiner Quadruple System on `n` points where `n\equiv
|
233
|
+
10\pmod{12}`
|
234
|
+
|
235
|
+
EXAMPLES::
|
236
|
+
|
237
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import three_n_minus_four
|
238
|
+
sage: for n in range(4, 30):
|
239
|
+
....: if n%12 == 10:
|
240
|
+
....: sqs = designs.steiner_quadruple_system(n)
|
241
|
+
....: if not three_n_minus_four(sqs).is_t_design(3,3*n-4,4,1):
|
242
|
+
....: print("Something is wrong !")
|
243
|
+
"""
|
244
|
+
n = B.num_points()
|
245
|
+
|
246
|
+
if n % 12 != 10:
|
247
|
+
raise ValueError("n must be equal to 10 mod 12")
|
248
|
+
|
249
|
+
B = relabel_system(B)
|
250
|
+
r = lambda i,x : (i % 3)*(n-2)+(x % (n-2))
|
251
|
+
|
252
|
+
# Line 1/2.
|
253
|
+
Y = []
|
254
|
+
for s in B._blocks:
|
255
|
+
for i in range(3):
|
256
|
+
Y.append([r(i,x) if x <= n-3 else x+2*(n-2) for x in s])
|
257
|
+
|
258
|
+
# Line 3.
|
259
|
+
for a in range(2):
|
260
|
+
for aa in range(n-2):
|
261
|
+
for aaa in range(n-2):
|
262
|
+
aaaa = -(a+aa+aaa) % (n-2)
|
263
|
+
Y.append([r(0,aa),r(1,aaa), r(2,aaaa),3*(n-2)+a])
|
264
|
+
|
265
|
+
# Line 4.
|
266
|
+
k = (n-10) // 12
|
267
|
+
for i in range(3):
|
268
|
+
for b in range(n-2):
|
269
|
+
for bb in range(n-2):
|
270
|
+
bbb = -(b+bb) % (n-2)
|
271
|
+
for d in range(2*k+1):
|
272
|
+
Y.append([r(i+2,bbb), r(i, b+2*k+1+i*(4*k+2)-d) , r(i, b+2*k+2+i*(4*k+2)+d), r(i+1,bb)])
|
273
|
+
|
274
|
+
# Line 5.
|
275
|
+
from sage.graphs.graph_coloring import round_robin
|
276
|
+
one_factorization = round_robin(2*(6*k+4)).edges(sort=True)
|
277
|
+
color_classes = [[] for _ in repeat(None, 2*(6*k+4)-1)]
|
278
|
+
for u, v, l in one_factorization:
|
279
|
+
color_classes[l].append((u,v))
|
280
|
+
|
281
|
+
for i in range(3):
|
282
|
+
for alpha in range(4*k+2, 12*k+6+1):
|
283
|
+
for ra,sa in P(alpha, 6*k+4):
|
284
|
+
for raa,saa in P(alpha, 6*k+4):
|
285
|
+
Y.append([r(i,ra),r(i,sa),r(i+1,raa), r(i+1,saa)])
|
286
|
+
|
287
|
+
return IncidenceStructure(3*n-4,Y,check=False,copy=False)
|
288
|
+
|
289
|
+
# Construction 5
|
290
|
+
|
291
|
+
|
292
|
+
def four_n_minus_six(B):
|
293
|
+
"""
|
294
|
+
Return a Steiner Quadruple System on `4n-6` points.
|
295
|
+
|
296
|
+
INPUT:
|
297
|
+
|
298
|
+
- ``B`` -- a Steiner Quadruple System on `n` points
|
299
|
+
|
300
|
+
EXAMPLES::
|
301
|
+
|
302
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import four_n_minus_six
|
303
|
+
sage: for n in range(4, 20):
|
304
|
+
....: if (n%6) in [2,4]:
|
305
|
+
....: sqs = designs.steiner_quadruple_system(n)
|
306
|
+
....: if not four_n_minus_six(sqs).is_t_design(3,4*n-6,4,1):
|
307
|
+
....: print("Something is wrong !")
|
308
|
+
"""
|
309
|
+
n = B.num_points()
|
310
|
+
f = n-2
|
311
|
+
r = lambda i,ii,x : (2*(i % 2)+(ii % 2))*(n-2)+(x) % (n-2)
|
312
|
+
|
313
|
+
# Line 1.
|
314
|
+
Y = []
|
315
|
+
for s in B._blocks:
|
316
|
+
for i in range(2):
|
317
|
+
for ii in range(2):
|
318
|
+
Y.append([r(i,ii,x) if x <= n-3 else x+3*(n-2) for x in s])
|
319
|
+
|
320
|
+
# Line 2/3/4/5
|
321
|
+
k = f // 2
|
322
|
+
for l in range(2):
|
323
|
+
for eps in range(2):
|
324
|
+
for c in range(k):
|
325
|
+
for cc in range(k):
|
326
|
+
ccc = -(c+cc) % k
|
327
|
+
Y.append([4*(n-2)+l, r(0,0,2*c) , r(0,1,2*cc-eps) , r(1,eps,2*ccc+l) ])
|
328
|
+
Y.append([4*(n-2)+l, r(0,0,2*c+1), r(0,1,2*cc-1-eps), r(1,eps,2*ccc+1-l)])
|
329
|
+
Y.append([4*(n-2)+l, r(1,0,2*c) , r(1,1,2*cc-eps) , r(0,eps,2*ccc+1-l)])
|
330
|
+
Y.append([4*(n-2)+l, r(1,0,2*c+1), r(1,1,2*cc-1-eps), r(0,eps,2*ccc+l) ])
|
331
|
+
|
332
|
+
# Line 6/7
|
333
|
+
for h in range(2):
|
334
|
+
for eps in range(2):
|
335
|
+
for ccc in range(k):
|
336
|
+
assert len(barP(ccc,k)) == k-1
|
337
|
+
for rc,sc in barP(ccc,k):
|
338
|
+
for c in range(k):
|
339
|
+
cc = -(c+ccc) % k
|
340
|
+
Y.append([r(h,0,2*c+eps) , r(h,1,2*cc-eps), r(h+1,0,rc), r(h+1,0,sc)])
|
341
|
+
Y.append([r(h,0,2*c-1+eps), r(h,1,2*cc-eps), r(h+1,1,rc), r(h+1,1,sc)])
|
342
|
+
|
343
|
+
# Line 8/9
|
344
|
+
for h in range(2):
|
345
|
+
for eps in range(2):
|
346
|
+
for ccc in range(k):
|
347
|
+
for rc,sc in barP(k+ccc,k):
|
348
|
+
for c in range(k):
|
349
|
+
cc = -(c+ccc) % k
|
350
|
+
Y.append([r(h,0,2*c+eps) , r(h,1,2*cc-eps), r(h+1,1,rc), r(h+1,1,sc)])
|
351
|
+
Y.append([r(h,0,2*c-1+eps), r(h,1,2*cc-eps), r(h+1,0,rc), r(h+1,0,sc)])
|
352
|
+
|
353
|
+
# Line 10
|
354
|
+
for h in range(2):
|
355
|
+
for alpha in range(n-3):
|
356
|
+
for ra,sa in P(alpha,k):
|
357
|
+
for raa,saa in P(alpha,k):
|
358
|
+
Y.append([r(h,0,ra),r(h,0,sa),r(h,1,raa),r(h,1,saa)])
|
359
|
+
|
360
|
+
return IncidenceStructure(4*n-6,Y,check=False,copy=False)
|
361
|
+
|
362
|
+
# Construction 6
|
363
|
+
|
364
|
+
|
365
|
+
def twelve_n_minus_ten(B):
|
366
|
+
"""
|
367
|
+
Return a Steiner Quadruple System on `12n-6` points.
|
368
|
+
|
369
|
+
INPUT:
|
370
|
+
|
371
|
+
- ``B`` -- a Steiner Quadruple System on `n` points
|
372
|
+
|
373
|
+
EXAMPLES::
|
374
|
+
|
375
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import twelve_n_minus_ten
|
376
|
+
sage: for n in range(4, 15):
|
377
|
+
....: if (n%6) in [2,4]:
|
378
|
+
....: sqs = designs.steiner_quadruple_system(n)
|
379
|
+
....: if not twelve_n_minus_ten(sqs).is_t_design(3,12*n-10,4,1):
|
380
|
+
....: print("Something is wrong !")
|
381
|
+
"""
|
382
|
+
n = B.num_points()
|
383
|
+
B14 = steiner_quadruple_system(14)
|
384
|
+
r = lambda i,x : i % (n-1)+(x % 12)*(n-1)
|
385
|
+
|
386
|
+
# Line 1.
|
387
|
+
Y = []
|
388
|
+
for s in B14._blocks:
|
389
|
+
for i in range(n-1):
|
390
|
+
Y.append([r(i,x) if x <= 11 else r(n-2,11)+x-11 for x in s])
|
391
|
+
|
392
|
+
for s in B._blocks:
|
393
|
+
if s[-1] == n-1:
|
394
|
+
u,v,w,B = s
|
395
|
+
dd = {0:u,1:v,2:w}
|
396
|
+
d = lambda x:dd[x % 3]
|
397
|
+
for b in range(12):
|
398
|
+
for bb in range(12):
|
399
|
+
bbb = -(b+bb) % 12
|
400
|
+
for h in range(2):
|
401
|
+
# Line 2
|
402
|
+
Y.append([r(n-2,11)+1+h,r(u,b),r(v,bb),r(w,bbb+3*h)])
|
403
|
+
|
404
|
+
for i in range(3):
|
405
|
+
# Line 38.3
|
406
|
+
Y.append([r(d(i),b+4+i), r(d(i),b+7+i), r(d(i+1),bb), r(d(i+2),bbb)])
|
407
|
+
|
408
|
+
for j in range(12):
|
409
|
+
for eps in range(2):
|
410
|
+
for i in range(3):
|
411
|
+
# Line 38.4-38.7
|
412
|
+
Y.append([ r(d(i),j), r(d(i+1),j+6*eps ), r(d(i+2),6*eps-2*j+1), r(d(i+2),6*eps-2*j-1)])
|
413
|
+
Y.append([ r(d(i),j), r(d(i+1),j+6*eps ), r(d(i+2),6*eps-2*j+2), r(d(i+2),6*eps-2*j-2)])
|
414
|
+
Y.append([ r(d(i),j), r(d(i+1),j+6*eps-3), r(d(i+2),6*eps-2*j+1), r(d(i+2),6*eps-2*j+2)])
|
415
|
+
Y.append([ r(d(i),j), r(d(i+1),j+6*eps+3), r(d(i+2),6*eps-2*j-1), r(d(i+2),6*eps-2*j-2)])
|
416
|
+
|
417
|
+
for j in range(6):
|
418
|
+
for i in range(3):
|
419
|
+
for eps in range(2):
|
420
|
+
# Line 38.8
|
421
|
+
Y.append([ r(d(i),j), r(d(i),j+6), r(d(i+1),j+3*eps), r(d(i+1),j+6+3*eps)])
|
422
|
+
|
423
|
+
for j in range(12):
|
424
|
+
for i in range(3):
|
425
|
+
for eps in range(4):
|
426
|
+
# Line 38.11
|
427
|
+
Y.append([ r(d(i),j), r(d(i),j+1), r(d(i+1),j+3*eps), r(d(i+1),j+3*eps+1)])
|
428
|
+
# Line 38.12
|
429
|
+
Y.append([ r(d(i),j), r(d(i),j+2), r(d(i+1),j+3*eps), r(d(i+1),j+3*eps+2)])
|
430
|
+
# Line 38.13
|
431
|
+
Y.append([ r(d(i),j), r(d(i),j+4), r(d(i+1),j+3*eps), r(d(i+1),j+3*eps+4)])
|
432
|
+
|
433
|
+
for alpha in [4,5]:
|
434
|
+
for ra,sa in P(alpha,6):
|
435
|
+
for raa,saa in P(alpha,6):
|
436
|
+
for i in range(3):
|
437
|
+
for ii in range(i+1,3):
|
438
|
+
# Line 38.14
|
439
|
+
Y.append([ r(d(i),ra), r(d(i),sa), r(d(ii),raa), r(d(ii),saa)])
|
440
|
+
|
441
|
+
for g in range(6):
|
442
|
+
for eps in range(2):
|
443
|
+
for i in range(3):
|
444
|
+
for ii in range(3):
|
445
|
+
if i == ii:
|
446
|
+
continue
|
447
|
+
# Line 38.9
|
448
|
+
Y.append([ r(d(i),2*g+3*eps), r(d(i),2*g+6+3*eps), r(d(ii),2*g+1), r(d(ii),2*g+5)])
|
449
|
+
# Line 38.10
|
450
|
+
Y.append([ r(d(i),2*g+3*eps), r(d(i),2*g+6+3*eps), r(d(ii),2*g+2), r(d(ii),2*g+4)])
|
451
|
+
|
452
|
+
else:
|
453
|
+
x,y,z,t = s
|
454
|
+
for a in range(12):
|
455
|
+
for aa in range(12):
|
456
|
+
for aaa in range(12):
|
457
|
+
aaaa = -(a+aa+aaa) % 12
|
458
|
+
# Line 3
|
459
|
+
Y.append([r(x,a), r(y,aa), r(z,aaa), r(t,aaaa)])
|
460
|
+
return IncidenceStructure(12*n-10,Y,check=False,copy=False)
|
461
|
+
|
462
|
+
|
463
|
+
def relabel_system(B):
|
464
|
+
r"""
|
465
|
+
Relabel the set so that `\{n-4, n-3, n-2, n-1\}` is in `B`.
|
466
|
+
|
467
|
+
INPUT:
|
468
|
+
|
469
|
+
- ``B`` -- list of 4-uples on `0,...,n-1`
|
470
|
+
|
471
|
+
EXAMPLES::
|
472
|
+
|
473
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import relabel_system
|
474
|
+
sage: SQS8 = designs.steiner_quadruple_system(8)
|
475
|
+
sage: relabel_system(SQS8)
|
476
|
+
Incidence structure with 8 points and 14 blocks
|
477
|
+
"""
|
478
|
+
n = B.num_points()
|
479
|
+
B0 = B._blocks[0]
|
480
|
+
|
481
|
+
label = {
|
482
|
+
B0[0] : n-4,
|
483
|
+
B0[1] : n-3,
|
484
|
+
B0[2] : n-2,
|
485
|
+
B0[3] : n-1
|
486
|
+
}
|
487
|
+
|
488
|
+
def get_label(x):
|
489
|
+
if x in label:
|
490
|
+
return label[x]
|
491
|
+
else:
|
492
|
+
total = len(label)-4
|
493
|
+
label[x] = total
|
494
|
+
return total
|
495
|
+
|
496
|
+
B = [[get_label(_) for _ in s] for s in B]
|
497
|
+
return IncidenceStructure(n,B)
|
498
|
+
|
499
|
+
|
500
|
+
def P(alpha, m):
|
501
|
+
r"""
|
502
|
+
Return the collection of pairs `P_{\alpha}(m)`.
|
503
|
+
|
504
|
+
For more information on this system, see [Han1960]_.
|
505
|
+
|
506
|
+
EXAMPLES::
|
507
|
+
|
508
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import P
|
509
|
+
sage: P(3,4)
|
510
|
+
[(0, 5), (2, 7), (4, 1), (6, 3)]
|
511
|
+
"""
|
512
|
+
if alpha >= 2*m-1:
|
513
|
+
raise Exception
|
514
|
+
if m % 2 == 0:
|
515
|
+
if alpha < m:
|
516
|
+
if alpha % 2 == 0:
|
517
|
+
b = alpha // 2
|
518
|
+
return [(2*a, (2*a + 2*b + 1) % (2*m)) for a in range(m)]
|
519
|
+
else:
|
520
|
+
b = (alpha-1) // 2
|
521
|
+
return [(2*a, (2*a - 2*b - 1) % (2*m)) for a in range(m)]
|
522
|
+
else:
|
523
|
+
y = alpha - m
|
524
|
+
pairs = [(b,(2*y-b) % (2*m)) for b in range(y)]
|
525
|
+
pairs += [(c,(2*m+2*y-c-2) % (2*m)) for c in range(2*y+1,m+y-1)]
|
526
|
+
pairs += [(2*m+int(-1.5-.5*(-1)**y),y),(2*m+int(-1.5+.5*(-1)**y),m+y-1)]
|
527
|
+
return pairs
|
528
|
+
else:
|
529
|
+
if alpha < m-1:
|
530
|
+
if alpha % 2 == 0:
|
531
|
+
b = alpha // 2
|
532
|
+
return [(2*a,(2*a+2*b+1) % (2*m)) for a in range(m)]
|
533
|
+
else:
|
534
|
+
b = (alpha-1) // 2
|
535
|
+
return [(2*a,(2*a-2*b-1) % (2*m)) for a in range(m)]
|
536
|
+
else:
|
537
|
+
y = alpha-m+1
|
538
|
+
pairs = [(b,2*y-b) for b in range(y)]
|
539
|
+
pairs += [(c,2*m+2*y-c) for c in range(2*y+1,m+y)]
|
540
|
+
pairs += [(y,m+y)]
|
541
|
+
return pairs
|
542
|
+
|
543
|
+
|
544
|
+
def _missing_pair(n, l):
|
545
|
+
r"""
|
546
|
+
Return the smallest `(x,x+1)` that is not contained in `l`.
|
547
|
+
|
548
|
+
EXAMPLES::
|
549
|
+
|
550
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import _missing_pair
|
551
|
+
sage: _missing_pair(6, [(0,1), (4,5)])
|
552
|
+
(2, 3)
|
553
|
+
"""
|
554
|
+
l = set(x for X in l for x in X)
|
555
|
+
for x in range(n):
|
556
|
+
if x not in l:
|
557
|
+
break
|
558
|
+
|
559
|
+
assert x not in l
|
560
|
+
assert x + 1 not in l
|
561
|
+
return (x, x + 1)
|
562
|
+
|
563
|
+
|
564
|
+
def barP(eps, m):
|
565
|
+
r"""
|
566
|
+
Return the collection of pairs `\overline P_{\alpha}(m)`.
|
567
|
+
|
568
|
+
For more information on this system, see [Han1960]_.
|
569
|
+
|
570
|
+
EXAMPLES::
|
571
|
+
|
572
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import barP
|
573
|
+
sage: barP(3,4)
|
574
|
+
[(0, 4), (3, 5), (1, 2)]
|
575
|
+
"""
|
576
|
+
return barP_system(m)[eps]
|
577
|
+
|
578
|
+
|
579
|
+
@cached_function
|
580
|
+
def barP_system(m):
|
581
|
+
r"""
|
582
|
+
Return the 1-factorization of `K_{2m}` `\overline P(m)`.
|
583
|
+
|
584
|
+
For more information on this system, see [Han1960]_.
|
585
|
+
|
586
|
+
EXAMPLES::
|
587
|
+
|
588
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import barP_system
|
589
|
+
sage: barP_system(3)
|
590
|
+
[[(4, 3), (2, 5)],
|
591
|
+
[(0, 5), (4, 1)],
|
592
|
+
[(0, 2), (1, 3)],
|
593
|
+
[(1, 5), (4, 2), (0, 3)],
|
594
|
+
[(0, 4), (3, 5), (1, 2)],
|
595
|
+
[(0, 1), (2, 3), (4, 5)]]
|
596
|
+
"""
|
597
|
+
isequal = lambda e1,e2 : e1 == e2 or e1 == tuple(reversed(e2))
|
598
|
+
pairs = []
|
599
|
+
last = []
|
600
|
+
|
601
|
+
if m % 2 == 0:
|
602
|
+
# The first (shorter) collections of pairs, obtained from P by removing
|
603
|
+
# pairs. Those are added to 'last', a new list of pairs
|
604
|
+
last = []
|
605
|
+
for n in range(1, (m-2)//2+1):
|
606
|
+
pairs.append([p for p in P(2*n,m) if not isequal(p,(2*n,(4*n+1) % (2*m)))])
|
607
|
+
last.append((2*n,(4*n+1) % (2*m)))
|
608
|
+
pairs.append([p for p in P(2*n-1,m) if not isequal(p,(2*m-2-2*n,2*m-1-4*n))])
|
609
|
+
last.append((2*m-2-2*n,2*m-1-4*n))
|
610
|
+
|
611
|
+
pairs.append([p for p in P(m,m) if not isequal(p,(2*m-2,0))])
|
612
|
+
last.append((2*m-2,0))
|
613
|
+
pairs.append([p for p in P(m+1,m) if not isequal(p,(2*m-1,1))])
|
614
|
+
last.append((2*m-1,1))
|
615
|
+
|
616
|
+
assert all(len(pp) == m-1 for pp in pairs)
|
617
|
+
assert len(last) == m
|
618
|
+
|
619
|
+
# Pairs of normal length
|
620
|
+
|
621
|
+
pairs.append(P(0,m))
|
622
|
+
pairs.append(P(m-1,m))
|
623
|
+
|
624
|
+
for alpha in range(m+2,2*m-1):
|
625
|
+
pairs.append(P(alpha,m))
|
626
|
+
pairs.append(last)
|
627
|
+
|
628
|
+
assert len(pairs) == 2*m
|
629
|
+
|
630
|
+
# Now the points must be relabeled
|
631
|
+
relabel = {}
|
632
|
+
for n in range(1, (m-2)//2+1):
|
633
|
+
relabel[2*n] = (4*n) % (2*m)
|
634
|
+
relabel[4*n+1] = (4*n+1) % (2*m)
|
635
|
+
relabel[2*m-2-2*n] = (4*n-2) % (2*m)
|
636
|
+
relabel[2*m-1-4*n] = (4*n-1) % (2*m)
|
637
|
+
|
638
|
+
relabel[2*m-2] = (1) % (2*m)
|
639
|
+
relabel[0] = 0
|
640
|
+
relabel[2*m-1] = 2*m-1
|
641
|
+
relabel[1] = 2*m-2
|
642
|
+
|
643
|
+
else:
|
644
|
+
# The first (shorter) collections of pairs, obtained from P by removing
|
645
|
+
# pairs. Those are added to 'last', a new list of pairs
|
646
|
+
|
647
|
+
last = []
|
648
|
+
for n in range((m - 3) // 2 + 1):
|
649
|
+
pairs.append([p for p in P(2*n,m) if not isequal(p,(2*n,(4*n+1) % (2*m)))])
|
650
|
+
last.append((2*n,(4*n+1) % (2*m)))
|
651
|
+
pairs.append([p for p in P(2*n+1,m) if not isequal(p,(2*m-2-2*n,2*m-3-4*n))])
|
652
|
+
last.append((2*m-2-2*n,2*m-3-4*n))
|
653
|
+
|
654
|
+
pairs.append([p for p in P(2*m-2,m) if not isequal(p,(m-1,2*m-1))])
|
655
|
+
last.append((m-1,2*m-1))
|
656
|
+
|
657
|
+
assert all(len(pp) == m-1 for pp in pairs)
|
658
|
+
assert len(pairs) == m
|
659
|
+
|
660
|
+
# Pairs of normal length
|
661
|
+
|
662
|
+
for alpha in range(m-1,2*m-2):
|
663
|
+
pairs.append(P(alpha,m))
|
664
|
+
pairs.append(last)
|
665
|
+
|
666
|
+
assert len(pairs) == 2*m
|
667
|
+
|
668
|
+
# Now the points must be relabeled
|
669
|
+
relabel = {}
|
670
|
+
for n in range((m - 3) // 2 + 1):
|
671
|
+
relabel[2*n] = (4*n) % (2*m)
|
672
|
+
relabel[4*n+1] = (4*n+1) % (2*m)
|
673
|
+
relabel[2*m-2-2*n] = (4*n+2) % (2*m)
|
674
|
+
relabel[2*m-3-4*n] = (4*n+3) % (2*m)
|
675
|
+
relabel[m-1] = (2*m-2) % (2*m)
|
676
|
+
relabel[2*m-1] = 2*m-1
|
677
|
+
|
678
|
+
assert len(relabel) == 2*m
|
679
|
+
assert len(pairs) == 2*m
|
680
|
+
|
681
|
+
# Relabeling the points
|
682
|
+
|
683
|
+
pairs = [[(relabel[x],relabel[y]) for x,y in pp] for pp in pairs]
|
684
|
+
|
685
|
+
# Pairs are sorted first according to their cardinality, then using the
|
686
|
+
# number of the smallest point that they do NOT contain.
|
687
|
+
pairs.sort(key=lambda x: _missing_pair(2*m+1,x))
|
688
|
+
|
689
|
+
return pairs
|
690
|
+
|
691
|
+
|
692
|
+
@cached_function
|
693
|
+
def steiner_quadruple_system(n, check=False):
|
694
|
+
r"""
|
695
|
+
Return a Steiner Quadruple System on `n` points.
|
696
|
+
|
697
|
+
INPUT:
|
698
|
+
|
699
|
+
- ``n`` -- integer such that `n\equiv 2,4\pmod 6`
|
700
|
+
|
701
|
+
- ``check`` -- boolean (default: ``False``); whether to check that the
|
702
|
+
system is a Steiner Quadruple System before returning it
|
703
|
+
|
704
|
+
EXAMPLES::
|
705
|
+
|
706
|
+
sage: sqs4 = designs.steiner_quadruple_system(4)
|
707
|
+
sage: sqs4
|
708
|
+
Incidence structure with 4 points and 1 blocks
|
709
|
+
sage: sqs4.is_t_design(3,4,4,1)
|
710
|
+
True
|
711
|
+
|
712
|
+
sage: sqs8 = designs.steiner_quadruple_system(8)
|
713
|
+
sage: sqs8
|
714
|
+
Incidence structure with 8 points and 14 blocks
|
715
|
+
sage: sqs8.is_t_design(3,8,4,1)
|
716
|
+
True
|
717
|
+
|
718
|
+
TESTS::
|
719
|
+
|
720
|
+
sage: for n in range(4, 100): # long time
|
721
|
+
....: if (n%6) in [2,4]:
|
722
|
+
....: sqs = designs.steiner_quadruple_system(n, check=True)
|
723
|
+
"""
|
724
|
+
n = int(n)
|
725
|
+
if (n % 6) not in [2, 4]:
|
726
|
+
raise ValueError("n mod 6 must be equal to 2 or 4")
|
727
|
+
elif n == 4:
|
728
|
+
sqs = IncidenceStructure(4, [[0,1,2,3]], copy=False, check=False)
|
729
|
+
elif n == 14:
|
730
|
+
sqs = IncidenceStructure(14, _SQS14(), copy=False, check=False)
|
731
|
+
elif n == 38:
|
732
|
+
sqs = IncidenceStructure(38, _SQS38(), copy=False, check=False)
|
733
|
+
elif n % 12 in [4, 8]:
|
734
|
+
nn = n // 2
|
735
|
+
sqs = two_n(steiner_quadruple_system(nn, check=False))
|
736
|
+
elif n % 18 in [4,10]:
|
737
|
+
nn = (n+2) // 3
|
738
|
+
sqs = three_n_minus_two(steiner_quadruple_system(nn, check=False))
|
739
|
+
elif (n % 36) == 34:
|
740
|
+
nn = (n+8) // 3
|
741
|
+
sqs = three_n_minus_eight(steiner_quadruple_system(nn, check=False))
|
742
|
+
elif (n % 36) == 26:
|
743
|
+
nn = (n+4) // 3
|
744
|
+
sqs = three_n_minus_four(steiner_quadruple_system(nn, check=False))
|
745
|
+
elif n % 24 in [2, 10]:
|
746
|
+
nn = (n+6) // 4
|
747
|
+
sqs = four_n_minus_six(steiner_quadruple_system(nn, check=False))
|
748
|
+
elif n % 72 in [14, 38]:
|
749
|
+
nn = (n+10) // 12
|
750
|
+
sqs = twelve_n_minus_ten(steiner_quadruple_system(nn, check=False))
|
751
|
+
else:
|
752
|
+
raise ValueError("this should never happen")
|
753
|
+
|
754
|
+
if check and not sqs.is_t_design(3,n,4,1):
|
755
|
+
raise RuntimeError("something is very very wrong")
|
756
|
+
|
757
|
+
return sqs
|
758
|
+
|
759
|
+
|
760
|
+
def _SQS14():
|
761
|
+
r"""
|
762
|
+
Return a Steiner Quadruple System on 14 points.
|
763
|
+
|
764
|
+
Obtained from the La Jolla Covering Repository.
|
765
|
+
|
766
|
+
EXAMPLES::
|
767
|
+
|
768
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import _SQS14
|
769
|
+
sage: sqs14 = IncidenceStructure(_SQS14())
|
770
|
+
sage: sqs14.is_t_design(3,14,4,1)
|
771
|
+
True
|
772
|
+
"""
|
773
|
+
return [[0, 1, 2, 5], [0, 1, 3, 6], [0, 1, 4, 13], [0, 1, 7, 10], [0, 1, 8, 9],
|
774
|
+
[0, 1, 11, 12], [0, 2, 3, 4], [0, 2, 6, 12], [0, 2, 7, 9], [0, 2, 8, 11],
|
775
|
+
[0, 2, 10, 13], [0, 3, 5, 13], [0, 3, 7, 11], [0, 3, 8, 10], [0, 3, 9, 12],
|
776
|
+
[0, 4, 5, 9], [0, 4, 6, 11], [0, 4, 7, 8], [0, 4, 10, 12], [0, 5, 6, 8],
|
777
|
+
[0, 5, 7, 12], [0, 5, 10, 11], [0, 6, 7, 13], [0, 6, 9, 10], [0, 8, 12, 13],
|
778
|
+
[0, 9, 11, 13], [1, 2, 3, 13], [1, 2, 4, 12], [1, 2, 6, 9], [1, 2, 7, 11],
|
779
|
+
[1, 2, 8, 10], [1, 3, 4, 5], [1, 3, 7, 8], [1, 3, 9, 11], [1, 3, 10, 12],
|
780
|
+
[1, 4, 6, 10], [1, 4, 7, 9], [1, 4, 8, 11], [1, 5, 6, 11], [1, 5, 7, 13],
|
781
|
+
[1, 5, 8, 12], [1, 5, 9, 10], [1, 6, 7, 12], [1, 6, 8, 13], [1, 9, 12, 13],
|
782
|
+
[1, 10, 11, 13], [2, 3, 5, 11], [2, 3, 6, 7], [2, 3, 8, 12], [2, 3, 9, 10],
|
783
|
+
[2, 4, 5, 13], [2, 4, 6, 8], [2, 4, 7, 10], [2, 4, 9, 11], [2, 5, 6, 10],
|
784
|
+
[2, 5, 7, 8], [2, 5, 9, 12], [2, 6, 11, 13], [2, 7, 12, 13], [2, 8, 9, 13],
|
785
|
+
[2, 10, 11, 12], [3, 4, 6, 9], [3, 4, 7, 12], [3, 4, 8, 13], [3, 4, 10, 11],
|
786
|
+
[3, 5, 6, 12], [3, 5, 7, 10], [3, 5, 8, 9], [3, 6, 8, 11], [3, 6, 10, 13],
|
787
|
+
[3, 7, 9, 13], [3, 11, 12, 13], [4, 5, 6, 7], [4, 5, 8, 10], [4, 5, 11, 12],
|
788
|
+
[4, 6, 12, 13], [4, 7, 11, 13], [4, 8, 9, 12], [4, 9, 10, 13], [5, 6, 9, 13],
|
789
|
+
[5, 7, 9, 11], [5, 8, 11, 13], [5, 10, 12, 13], [6, 7, 8, 9], [6, 7, 10, 11],
|
790
|
+
[6, 8, 10, 12], [6, 9, 11, 12], [7, 8, 10, 13], [7, 8, 11, 12], [7, 9, 10, 12],
|
791
|
+
[8, 9, 10, 11]]
|
792
|
+
|
793
|
+
|
794
|
+
def _SQS38():
|
795
|
+
r"""
|
796
|
+
Return a Steiner Quadruple System on 14 points.
|
797
|
+
|
798
|
+
Obtained from the La Jolla Covering Repository.
|
799
|
+
|
800
|
+
EXAMPLES::
|
801
|
+
|
802
|
+
sage: from sage.combinat.designs.steiner_quadruple_systems import _SQS38
|
803
|
+
sage: sqs38 = IncidenceStructure(_SQS38())
|
804
|
+
sage: sqs38.is_t_design(3,38,4,1)
|
805
|
+
True
|
806
|
+
"""
|
807
|
+
# From the La Jolla Covering Repository
|
808
|
+
return [[0, 1, 2, 14], [0, 1, 3, 34], [0, 1, 4, 31], [0, 1, 5, 27], [0, 1, 6, 17],
|
809
|
+
[0, 1, 7, 12], [0, 1, 8, 36], [0, 1, 9, 10], [0, 1, 11, 18], [0, 1, 13, 37],
|
810
|
+
[0, 1, 15, 35], [0, 1, 16, 22], [0, 1, 19, 33], [0, 1, 20, 25], [0, 1, 21, 23],
|
811
|
+
[0, 1, 24, 32], [0, 1, 26, 28], [0, 1, 29, 30], [0, 2, 3, 10], [0, 2, 4, 9],
|
812
|
+
[0, 2, 5, 28], [0, 2, 6, 15], [0, 2, 7, 36], [0, 2, 8, 23], [0, 2, 11, 22],
|
813
|
+
[0, 2, 12, 13], [0, 2, 16, 25], [0, 2, 17, 18], [0, 2, 19, 30], [0, 2, 20, 35],
|
814
|
+
[0, 2, 21, 29], [0, 2, 24, 34], [0, 2, 26, 31], [0, 2, 27, 32], [0, 2, 33, 37],
|
815
|
+
[0, 3, 4, 18], [0, 3, 5, 23], [0, 3, 6, 32], [0, 3, 7, 19], [0, 3, 8, 20],
|
816
|
+
[0, 3, 9, 17], [0, 3, 11, 25], [0, 3, 12, 24], [0, 3, 13, 27], [0, 3, 14, 31],
|
817
|
+
[0, 3, 15, 22], [0, 3, 16, 28], [0, 3, 21, 33], [0, 3, 26, 36], [0, 3, 29, 35],
|
818
|
+
[0, 3, 30, 37], [0, 4, 5, 7], [0, 4, 6, 28], [0, 4, 8, 25], [0, 4, 10, 30],
|
819
|
+
[0, 4, 11, 20], [0, 4, 12, 32], [0, 4, 13, 36], [0, 4, 14, 29], [0, 4, 15, 27],
|
820
|
+
[0, 4, 16, 35], [0, 4, 17, 22], [0, 4, 19, 23], [0, 4, 21, 34], [0, 4, 24, 33],
|
821
|
+
[0, 4, 26, 37], [0, 5, 6, 24], [0, 5, 8, 26], [0, 5, 9, 29], [0, 5, 10, 20],
|
822
|
+
[0, 5, 11, 13], [0, 5, 12, 14], [0, 5, 15, 33], [0, 5, 16, 37], [0, 5, 17, 35],
|
823
|
+
[0, 5, 18, 19], [0, 5, 21, 25], [0, 5, 22, 30], [0, 5, 31, 32], [0, 5, 34, 36],
|
824
|
+
[0, 6, 7, 30], [0, 6, 8, 33], [0, 6, 9, 12], [0, 6, 10, 18], [0, 6, 11, 37],
|
825
|
+
[0, 6, 13, 31], [0, 6, 14, 35], [0, 6, 16, 29], [0, 6, 19, 25], [0, 6, 20, 27],
|
826
|
+
[0, 6, 21, 36], [0, 6, 22, 23], [0, 6, 26, 34], [0, 7, 8, 11], [0, 7, 9, 33],
|
827
|
+
[0, 7, 10, 21], [0, 7, 13, 20], [0, 7, 14, 22], [0, 7, 15, 31], [0, 7, 16, 34],
|
828
|
+
[0, 7, 17, 29], [0, 7, 18, 24], [0, 7, 23, 26], [0, 7, 25, 32], [0, 7, 27, 28],
|
829
|
+
[0, 7, 35, 37], [0, 8, 9, 37], [0, 8, 10, 27], [0, 8, 12, 18], [0, 8, 13, 30],
|
830
|
+
[0, 8, 14, 15], [0, 8, 16, 21], [0, 8, 17, 19], [0, 8, 22, 35], [0, 8, 24, 31],
|
831
|
+
[0, 8, 28, 34], [0, 8, 29, 32], [0, 9, 11, 30], [0, 9, 13, 23], [0, 9, 14, 18],
|
832
|
+
[0, 9, 15, 25], [0, 9, 16, 26], [0, 9, 19, 28], [0, 9, 20, 36], [0, 9, 21, 35],
|
833
|
+
[0, 9, 22, 24], [0, 9, 27, 31], [0, 9, 32, 34], [0, 10, 11, 36],
|
834
|
+
[0, 10, 12, 15], [0, 10, 13, 26], [0, 10, 14, 16], [0, 10, 17, 37],
|
835
|
+
[0, 10, 19, 29], [0, 10, 22, 31], [0, 10, 23, 32], [0, 10, 24, 35],
|
836
|
+
[0, 10, 25, 34], [0, 10, 28, 33], [0, 11, 12, 16], [0, 11, 14, 24],
|
837
|
+
[0, 11, 15, 26], [0, 11, 17, 31], [0, 11, 19, 21], [0, 11, 23, 34],
|
838
|
+
[0, 11, 27, 29], [0, 11, 28, 35], [0, 11, 32, 33], [0, 12, 17, 20],
|
839
|
+
[0, 12, 19, 35], [0, 12, 21, 28], [0, 12, 22, 25], [0, 12, 23, 27],
|
840
|
+
[0, 12, 26, 29], [0, 12, 30, 33], [0, 12, 31, 34], [0, 12, 36, 37],
|
841
|
+
[0, 13, 14, 33], [0, 13, 15, 29], [0, 13, 16, 24], [0, 13, 17, 21],
|
842
|
+
[0, 13, 18, 34], [0, 13, 19, 32], [0, 13, 22, 28], [0, 13, 25, 35],
|
843
|
+
[0, 14, 17, 26], [0, 14, 19, 20], [0, 14, 21, 32], [0, 14, 23, 36],
|
844
|
+
[0, 14, 25, 28], [0, 14, 27, 30], [0, 14, 34, 37], [0, 15, 16, 36],
|
845
|
+
[0, 15, 17, 23], [0, 15, 18, 20], [0, 15, 19, 34], [0, 15, 21, 37],
|
846
|
+
[0, 15, 24, 28], [0, 15, 30, 32], [0, 16, 17, 32], [0, 16, 18, 27],
|
847
|
+
[0, 16, 19, 31], [0, 16, 20, 33], [0, 16, 23, 30], [0, 17, 24, 27],
|
848
|
+
[0, 17, 25, 33], [0, 17, 28, 36], [0, 17, 30, 34], [0, 18, 21, 26],
|
849
|
+
[0, 18, 22, 29], [0, 18, 23, 28], [0, 18, 25, 31], [0, 18, 30, 35],
|
850
|
+
[0, 18, 32, 37], [0, 18, 33, 36], [0, 19, 22, 26], [0, 19, 24, 37],
|
851
|
+
[0, 19, 27, 36], [0, 20, 21, 31], [0, 20, 22, 37], [0, 20, 23, 24],
|
852
|
+
[0, 20, 26, 30], [0, 20, 28, 32], [0, 20, 29, 34], [0, 21, 22, 27],
|
853
|
+
[0, 21, 24, 30], [0, 22, 32, 36], [0, 22, 33, 34], [0, 23, 25, 29],
|
854
|
+
[0, 23, 31, 37], [0, 23, 33, 35], [0, 24, 25, 26], [0, 24, 29, 36],
|
855
|
+
[0, 25, 27, 37], [0, 25, 30, 36], [0, 26, 27, 33], [0, 26, 32, 35],
|
856
|
+
[0, 27, 34, 35], [0, 28, 29, 37], [0, 28, 30, 31], [0, 29, 31, 33],
|
857
|
+
[0, 31, 35, 36], [1, 2, 3, 15], [1, 2, 4, 35], [1, 2, 5, 32], [1, 2, 6, 28],
|
858
|
+
[1, 2, 7, 18], [1, 2, 8, 13], [1, 2, 9, 37], [1, 2, 10, 11], [1, 2, 12, 19],
|
859
|
+
[1, 2, 16, 36], [1, 2, 17, 23], [1, 2, 20, 34], [1, 2, 21, 26], [1, 2, 22, 24],
|
860
|
+
[1, 2, 25, 33], [1, 2, 27, 29], [1, 2, 30, 31], [1, 3, 4, 11], [1, 3, 5, 10],
|
861
|
+
[1, 3, 6, 29], [1, 3, 7, 16], [1, 3, 8, 37], [1, 3, 9, 24], [1, 3, 12, 23],
|
862
|
+
[1, 3, 13, 14], [1, 3, 17, 26], [1, 3, 18, 19], [1, 3, 20, 31], [1, 3, 21, 36],
|
863
|
+
[1, 3, 22, 30], [1, 3, 25, 35], [1, 3, 27, 32], [1, 3, 28, 33], [1, 4, 5, 19],
|
864
|
+
[1, 4, 6, 24], [1, 4, 7, 33], [1, 4, 8, 20], [1, 4, 9, 21], [1, 4, 10, 18],
|
865
|
+
[1, 4, 12, 26], [1, 4, 13, 25], [1, 4, 14, 28], [1, 4, 15, 32], [1, 4, 16, 23],
|
866
|
+
[1, 4, 17, 29], [1, 4, 22, 34], [1, 4, 27, 37], [1, 4, 30, 36], [1, 5, 6, 8],
|
867
|
+
[1, 5, 7, 29], [1, 5, 9, 26], [1, 5, 11, 31], [1, 5, 12, 21], [1, 5, 13, 33],
|
868
|
+
[1, 5, 14, 37], [1, 5, 15, 30], [1, 5, 16, 28], [1, 5, 17, 36], [1, 5, 18, 23],
|
869
|
+
[1, 5, 20, 24], [1, 5, 22, 35], [1, 5, 25, 34], [1, 6, 7, 25], [1, 6, 9, 27],
|
870
|
+
[1, 6, 10, 30], [1, 6, 11, 21], [1, 6, 12, 14], [1, 6, 13, 15], [1, 6, 16, 34],
|
871
|
+
[1, 6, 18, 36], [1, 6, 19, 20], [1, 6, 22, 26], [1, 6, 23, 31], [1, 6, 32, 33],
|
872
|
+
[1, 6, 35, 37], [1, 7, 8, 31], [1, 7, 9, 34], [1, 7, 10, 13], [1, 7, 11, 19],
|
873
|
+
[1, 7, 14, 32], [1, 7, 15, 36], [1, 7, 17, 30], [1, 7, 20, 26], [1, 7, 21, 28],
|
874
|
+
[1, 7, 22, 37], [1, 7, 23, 24], [1, 7, 27, 35], [1, 8, 9, 12], [1, 8, 10, 34],
|
875
|
+
[1, 8, 11, 22], [1, 8, 14, 21], [1, 8, 15, 23], [1, 8, 16, 32], [1, 8, 17, 35],
|
876
|
+
[1, 8, 18, 30], [1, 8, 19, 25], [1, 8, 24, 27], [1, 8, 26, 33], [1, 8, 28, 29],
|
877
|
+
[1, 9, 11, 28], [1, 9, 13, 19], [1, 9, 14, 31], [1, 9, 15, 16], [1, 9, 17, 22],
|
878
|
+
[1, 9, 18, 20], [1, 9, 23, 36], [1, 9, 25, 32], [1, 9, 29, 35], [1, 9, 30, 33],
|
879
|
+
[1, 10, 12, 31], [1, 10, 14, 24], [1, 10, 15, 19], [1, 10, 16, 26],
|
880
|
+
[1, 10, 17, 27], [1, 10, 20, 29], [1, 10, 21, 37], [1, 10, 22, 36],
|
881
|
+
[1, 10, 23, 25], [1, 10, 28, 32], [1, 10, 33, 35], [1, 11, 12, 37],
|
882
|
+
[1, 11, 13, 16], [1, 11, 14, 27], [1, 11, 15, 17], [1, 11, 20, 30],
|
883
|
+
[1, 11, 23, 32], [1, 11, 24, 33], [1, 11, 25, 36], [1, 11, 26, 35],
|
884
|
+
[1, 11, 29, 34], [1, 12, 13, 17], [1, 12, 15, 25], [1, 12, 16, 27],
|
885
|
+
[1, 12, 18, 32], [1, 12, 20, 22], [1, 12, 24, 35], [1, 12, 28, 30],
|
886
|
+
[1, 12, 29, 36], [1, 12, 33, 34], [1, 13, 18, 21], [1, 13, 20, 36],
|
887
|
+
[1, 13, 22, 29], [1, 13, 23, 26], [1, 13, 24, 28], [1, 13, 27, 30],
|
888
|
+
[1, 13, 31, 34], [1, 13, 32, 35], [1, 14, 15, 34], [1, 14, 16, 30],
|
889
|
+
[1, 14, 17, 25], [1, 14, 18, 22], [1, 14, 19, 35], [1, 14, 20, 33],
|
890
|
+
[1, 14, 23, 29], [1, 14, 26, 36], [1, 15, 18, 27], [1, 15, 20, 21],
|
891
|
+
[1, 15, 22, 33], [1, 15, 24, 37], [1, 15, 26, 29], [1, 15, 28, 31],
|
892
|
+
[1, 16, 17, 37], [1, 16, 18, 24], [1, 16, 19, 21], [1, 16, 20, 35],
|
893
|
+
[1, 16, 25, 29], [1, 16, 31, 33], [1, 17, 18, 33], [1, 17, 19, 28],
|
894
|
+
[1, 17, 20, 32], [1, 17, 21, 34], [1, 17, 24, 31], [1, 18, 25, 28],
|
895
|
+
[1, 18, 26, 34], [1, 18, 29, 37], [1, 18, 31, 35], [1, 19, 22, 27],
|
896
|
+
[1, 19, 23, 30], [1, 19, 24, 29], [1, 19, 26, 32], [1, 19, 31, 36],
|
897
|
+
[1, 19, 34, 37], [1, 20, 23, 27], [1, 20, 28, 37], [1, 21, 22, 32],
|
898
|
+
[1, 21, 24, 25], [1, 21, 27, 31], [1, 21, 29, 33], [1, 21, 30, 35],
|
899
|
+
[1, 22, 23, 28], [1, 22, 25, 31], [1, 23, 33, 37], [1, 23, 34, 35],
|
900
|
+
[1, 24, 26, 30], [1, 24, 34, 36], [1, 25, 26, 27], [1, 25, 30, 37],
|
901
|
+
[1, 26, 31, 37], [1, 27, 28, 34], [1, 27, 33, 36], [1, 28, 35, 36],
|
902
|
+
[1, 29, 31, 32], [1, 30, 32, 34], [1, 32, 36, 37], [2, 3, 4, 16],
|
903
|
+
[2, 3, 5, 36], [2, 3, 6, 33], [2, 3, 7, 29], [2, 3, 8, 19], [2, 3, 9, 14],
|
904
|
+
[2, 3, 11, 12], [2, 3, 13, 20], [2, 3, 17, 37], [2, 3, 18, 24], [2, 3, 21, 35],
|
905
|
+
[2, 3, 22, 27], [2, 3, 23, 25], [2, 3, 26, 34], [2, 3, 28, 30], [2, 3, 31, 32],
|
906
|
+
[2, 4, 5, 12], [2, 4, 6, 11], [2, 4, 7, 30], [2, 4, 8, 17], [2, 4, 10, 25],
|
907
|
+
[2, 4, 13, 24], [2, 4, 14, 15], [2, 4, 18, 27], [2, 4, 19, 20], [2, 4, 21, 32],
|
908
|
+
[2, 4, 22, 37], [2, 4, 23, 31], [2, 4, 26, 36], [2, 4, 28, 33], [2, 4, 29, 34],
|
909
|
+
[2, 5, 6, 20], [2, 5, 7, 25], [2, 5, 8, 34], [2, 5, 9, 21], [2, 5, 10, 22],
|
910
|
+
[2, 5, 11, 19], [2, 5, 13, 27], [2, 5, 14, 26], [2, 5, 15, 29], [2, 5, 16, 33],
|
911
|
+
[2, 5, 17, 24], [2, 5, 18, 30], [2, 5, 23, 35], [2, 5, 31, 37], [2, 6, 7, 9],
|
912
|
+
[2, 6, 8, 30], [2, 6, 10, 27], [2, 6, 12, 32], [2, 6, 13, 22], [2, 6, 14, 34],
|
913
|
+
[2, 6, 16, 31], [2, 6, 17, 29], [2, 6, 18, 37], [2, 6, 19, 24], [2, 6, 21, 25],
|
914
|
+
[2, 6, 23, 36], [2, 6, 26, 35], [2, 7, 8, 26], [2, 7, 10, 28], [2, 7, 11, 31],
|
915
|
+
[2, 7, 12, 22], [2, 7, 13, 15], [2, 7, 14, 16], [2, 7, 17, 35], [2, 7, 19, 37],
|
916
|
+
[2, 7, 20, 21], [2, 7, 23, 27], [2, 7, 24, 32], [2, 7, 33, 34], [2, 8, 9, 32],
|
917
|
+
[2, 8, 10, 35], [2, 8, 11, 14], [2, 8, 12, 20], [2, 8, 15, 33], [2, 8, 16, 37],
|
918
|
+
[2, 8, 18, 31], [2, 8, 21, 27], [2, 8, 22, 29], [2, 8, 24, 25], [2, 8, 28, 36],
|
919
|
+
[2, 9, 10, 13], [2, 9, 11, 35], [2, 9, 12, 23], [2, 9, 15, 22], [2, 9, 16, 24],
|
920
|
+
[2, 9, 17, 33], [2, 9, 18, 36], [2, 9, 19, 31], [2, 9, 20, 26], [2, 9, 25, 28],
|
921
|
+
[2, 9, 27, 34], [2, 9, 29, 30], [2, 10, 12, 29], [2, 10, 14, 20],
|
922
|
+
[2, 10, 15, 32], [2, 10, 16, 17], [2, 10, 18, 23], [2, 10, 19, 21],
|
923
|
+
[2, 10, 24, 37], [2, 10, 26, 33], [2, 10, 30, 36], [2, 10, 31, 34],
|
924
|
+
[2, 11, 13, 32], [2, 11, 15, 25], [2, 11, 16, 20], [2, 11, 17, 27],
|
925
|
+
[2, 11, 18, 28], [2, 11, 21, 30], [2, 11, 23, 37], [2, 11, 24, 26],
|
926
|
+
[2, 11, 29, 33], [2, 11, 34, 36], [2, 12, 14, 17], [2, 12, 15, 28],
|
927
|
+
[2, 12, 16, 18], [2, 12, 21, 31], [2, 12, 24, 33], [2, 12, 25, 34],
|
928
|
+
[2, 12, 26, 37], [2, 12, 27, 36], [2, 12, 30, 35], [2, 13, 14, 18],
|
929
|
+
[2, 13, 16, 26], [2, 13, 17, 28], [2, 13, 19, 33], [2, 13, 21, 23],
|
930
|
+
[2, 13, 25, 36], [2, 13, 29, 31], [2, 13, 30, 37], [2, 13, 34, 35],
|
931
|
+
[2, 14, 19, 22], [2, 14, 21, 37], [2, 14, 23, 30], [2, 14, 24, 27],
|
932
|
+
[2, 14, 25, 29], [2, 14, 28, 31], [2, 14, 32, 35], [2, 14, 33, 36],
|
933
|
+
[2, 15, 16, 35], [2, 15, 17, 31], [2, 15, 18, 26], [2, 15, 19, 23],
|
934
|
+
[2, 15, 20, 36], [2, 15, 21, 34], [2, 15, 24, 30], [2, 15, 27, 37],
|
935
|
+
[2, 16, 19, 28], [2, 16, 21, 22], [2, 16, 23, 34], [2, 16, 27, 30],
|
936
|
+
[2, 16, 29, 32], [2, 17, 19, 25], [2, 17, 20, 22], [2, 17, 21, 36],
|
937
|
+
[2, 17, 26, 30], [2, 17, 32, 34], [2, 18, 19, 34], [2, 18, 20, 29],
|
938
|
+
[2, 18, 21, 33], [2, 18, 22, 35], [2, 18, 25, 32], [2, 19, 26, 29],
|
939
|
+
[2, 19, 27, 35], [2, 19, 32, 36], [2, 20, 23, 28], [2, 20, 24, 31],
|
940
|
+
[2, 20, 25, 30], [2, 20, 27, 33], [2, 20, 32, 37], [2, 21, 24, 28],
|
941
|
+
[2, 22, 23, 33], [2, 22, 25, 26], [2, 22, 28, 32], [2, 22, 30, 34],
|
942
|
+
[2, 22, 31, 36], [2, 23, 24, 29], [2, 23, 26, 32], [2, 24, 35, 36],
|
943
|
+
[2, 25, 27, 31], [2, 25, 35, 37], [2, 26, 27, 28], [2, 28, 29, 35],
|
944
|
+
[2, 28, 34, 37], [2, 29, 36, 37], [2, 30, 32, 33], [2, 31, 33, 35],
|
945
|
+
[3, 4, 5, 17], [3, 4, 6, 37], [3, 4, 7, 34], [3, 4, 8, 30], [3, 4, 9, 20],
|
946
|
+
[3, 4, 10, 15], [3, 4, 12, 13], [3, 4, 14, 21], [3, 4, 19, 25], [3, 4, 22, 36],
|
947
|
+
[3, 4, 23, 28], [3, 4, 24, 26], [3, 4, 27, 35], [3, 4, 29, 31], [3, 4, 32, 33],
|
948
|
+
[3, 5, 6, 13], [3, 5, 7, 12], [3, 5, 8, 31], [3, 5, 9, 18], [3, 5, 11, 26],
|
949
|
+
[3, 5, 14, 25], [3, 5, 15, 16], [3, 5, 19, 28], [3, 5, 20, 21], [3, 5, 22, 33],
|
950
|
+
[3, 5, 24, 32], [3, 5, 27, 37], [3, 5, 29, 34], [3, 5, 30, 35], [3, 6, 7, 21],
|
951
|
+
[3, 6, 8, 26], [3, 6, 9, 35], [3, 6, 10, 22], [3, 6, 11, 23], [3, 6, 12, 20],
|
952
|
+
[3, 6, 14, 28], [3, 6, 15, 27], [3, 6, 16, 30], [3, 6, 17, 34], [3, 6, 18, 25],
|
953
|
+
[3, 6, 19, 31], [3, 6, 24, 36], [3, 7, 8, 10], [3, 7, 9, 31], [3, 7, 11, 28],
|
954
|
+
[3, 7, 13, 33], [3, 7, 14, 23], [3, 7, 15, 35], [3, 7, 17, 32], [3, 7, 18, 30],
|
955
|
+
[3, 7, 20, 25], [3, 7, 22, 26], [3, 7, 24, 37], [3, 7, 27, 36], [3, 8, 9, 27],
|
956
|
+
[3, 8, 11, 29], [3, 8, 12, 32], [3, 8, 13, 23], [3, 8, 14, 16], [3, 8, 15, 17],
|
957
|
+
[3, 8, 18, 36], [3, 8, 21, 22], [3, 8, 24, 28], [3, 8, 25, 33], [3, 8, 34, 35],
|
958
|
+
[3, 9, 10, 33], [3, 9, 11, 36], [3, 9, 12, 15], [3, 9, 13, 21], [3, 9, 16, 34],
|
959
|
+
[3, 9, 19, 32], [3, 9, 22, 28], [3, 9, 23, 30], [3, 9, 25, 26], [3, 9, 29, 37],
|
960
|
+
[3, 10, 11, 14], [3, 10, 12, 36], [3, 10, 13, 24], [3, 10, 16, 23],
|
961
|
+
[3, 10, 17, 25], [3, 10, 18, 34], [3, 10, 19, 37], [3, 10, 20, 32],
|
962
|
+
[3, 10, 21, 27], [3, 10, 26, 29], [3, 10, 28, 35], [3, 10, 30, 31],
|
963
|
+
[3, 11, 13, 30], [3, 11, 15, 21], [3, 11, 16, 33], [3, 11, 17, 18],
|
964
|
+
[3, 11, 19, 24], [3, 11, 20, 22], [3, 11, 27, 34], [3, 11, 31, 37],
|
965
|
+
[3, 11, 32, 35], [3, 12, 14, 33], [3, 12, 16, 26], [3, 12, 17, 21],
|
966
|
+
[3, 12, 18, 28], [3, 12, 19, 29], [3, 12, 22, 31], [3, 12, 25, 27],
|
967
|
+
[3, 12, 30, 34], [3, 12, 35, 37], [3, 13, 15, 18], [3, 13, 16, 29],
|
968
|
+
[3, 13, 17, 19], [3, 13, 22, 32], [3, 13, 25, 34], [3, 13, 26, 35],
|
969
|
+
[3, 13, 28, 37], [3, 13, 31, 36], [3, 14, 15, 19], [3, 14, 17, 27],
|
970
|
+
[3, 14, 18, 29], [3, 14, 20, 34], [3, 14, 22, 24], [3, 14, 26, 37],
|
971
|
+
[3, 14, 30, 32], [3, 14, 35, 36], [3, 15, 20, 23], [3, 15, 24, 31],
|
972
|
+
[3, 15, 25, 28], [3, 15, 26, 30], [3, 15, 29, 32], [3, 15, 33, 36],
|
973
|
+
[3, 15, 34, 37], [3, 16, 17, 36], [3, 16, 18, 32], [3, 16, 19, 27],
|
974
|
+
[3, 16, 20, 24], [3, 16, 21, 37], [3, 16, 22, 35], [3, 16, 25, 31],
|
975
|
+
[3, 17, 20, 29], [3, 17, 22, 23], [3, 17, 24, 35], [3, 17, 28, 31],
|
976
|
+
[3, 17, 30, 33], [3, 18, 20, 26], [3, 18, 21, 23], [3, 18, 22, 37],
|
977
|
+
[3, 18, 27, 31], [3, 18, 33, 35], [3, 19, 20, 35], [3, 19, 21, 30],
|
978
|
+
[3, 19, 22, 34], [3, 19, 23, 36], [3, 19, 26, 33], [3, 20, 27, 30],
|
979
|
+
[3, 20, 28, 36], [3, 20, 33, 37], [3, 21, 24, 29], [3, 21, 25, 32],
|
980
|
+
[3, 21, 26, 31], [3, 21, 28, 34], [3, 22, 25, 29], [3, 23, 24, 34],
|
981
|
+
[3, 23, 26, 27], [3, 23, 29, 33], [3, 23, 31, 35], [3, 23, 32, 37],
|
982
|
+
[3, 24, 25, 30], [3, 24, 27, 33], [3, 25, 36, 37], [3, 26, 28, 32],
|
983
|
+
[3, 27, 28, 29], [3, 29, 30, 36], [3, 31, 33, 34], [3, 32, 34, 36],
|
984
|
+
[4, 5, 6, 18], [4, 5, 8, 35], [4, 5, 9, 31], [4, 5, 10, 21], [4, 5, 11, 16],
|
985
|
+
[4, 5, 13, 14], [4, 5, 15, 22], [4, 5, 20, 26], [4, 5, 23, 37], [4, 5, 24, 29],
|
986
|
+
[4, 5, 25, 27], [4, 5, 28, 36], [4, 5, 30, 32], [4, 5, 33, 34], [4, 6, 7, 14],
|
987
|
+
[4, 6, 8, 13], [4, 6, 9, 32], [4, 6, 10, 19], [4, 6, 12, 27], [4, 6, 15, 26],
|
988
|
+
[4, 6, 16, 17], [4, 6, 20, 29], [4, 6, 21, 22], [4, 6, 23, 34], [4, 6, 25, 33],
|
989
|
+
[4, 6, 30, 35], [4, 6, 31, 36], [4, 7, 8, 22], [4, 7, 9, 27], [4, 7, 10, 36],
|
990
|
+
[4, 7, 11, 23], [4, 7, 12, 24], [4, 7, 13, 21], [4, 7, 15, 29], [4, 7, 16, 28],
|
991
|
+
[4, 7, 17, 31], [4, 7, 18, 35], [4, 7, 19, 26], [4, 7, 20, 32], [4, 7, 25, 37],
|
992
|
+
[4, 8, 9, 11], [4, 8, 10, 32], [4, 8, 12, 29], [4, 8, 14, 34], [4, 8, 15, 24],
|
993
|
+
[4, 8, 16, 36], [4, 8, 18, 33], [4, 8, 19, 31], [4, 8, 21, 26], [4, 8, 23, 27],
|
994
|
+
[4, 8, 28, 37], [4, 9, 10, 28], [4, 9, 12, 30], [4, 9, 13, 33], [4, 9, 14, 24],
|
995
|
+
[4, 9, 15, 17], [4, 9, 16, 18], [4, 9, 19, 37], [4, 9, 22, 23], [4, 9, 25, 29],
|
996
|
+
[4, 9, 26, 34], [4, 9, 35, 36], [4, 10, 11, 34], [4, 10, 12, 37],
|
997
|
+
[4, 10, 13, 16], [4, 10, 14, 22], [4, 10, 17, 35], [4, 10, 20, 33],
|
998
|
+
[4, 10, 23, 29], [4, 10, 24, 31], [4, 10, 26, 27], [4, 11, 12, 15],
|
999
|
+
[4, 11, 13, 37], [4, 11, 14, 25], [4, 11, 17, 24], [4, 11, 18, 26],
|
1000
|
+
[4, 11, 19, 35], [4, 11, 21, 33], [4, 11, 22, 28], [4, 11, 27, 30],
|
1001
|
+
[4, 11, 29, 36], [4, 11, 31, 32], [4, 12, 14, 31], [4, 12, 16, 22],
|
1002
|
+
[4, 12, 17, 34], [4, 12, 18, 19], [4, 12, 20, 25], [4, 12, 21, 23],
|
1003
|
+
[4, 12, 28, 35], [4, 12, 33, 36], [4, 13, 15, 34], [4, 13, 17, 27],
|
1004
|
+
[4, 13, 18, 22], [4, 13, 19, 29], [4, 13, 20, 30], [4, 13, 23, 32],
|
1005
|
+
[4, 13, 26, 28], [4, 13, 31, 35], [4, 14, 16, 19], [4, 14, 17, 30],
|
1006
|
+
[4, 14, 18, 20], [4, 14, 23, 33], [4, 14, 26, 35], [4, 14, 27, 36],
|
1007
|
+
[4, 14, 32, 37], [4, 15, 16, 20], [4, 15, 18, 28], [4, 15, 19, 30],
|
1008
|
+
[4, 15, 21, 35], [4, 15, 23, 25], [4, 15, 31, 33], [4, 15, 36, 37],
|
1009
|
+
[4, 16, 21, 24], [4, 16, 25, 32], [4, 16, 26, 29], [4, 16, 27, 31],
|
1010
|
+
[4, 16, 30, 33], [4, 16, 34, 37], [4, 17, 18, 37], [4, 17, 19, 33],
|
1011
|
+
[4, 17, 20, 28], [4, 17, 21, 25], [4, 17, 23, 36], [4, 17, 26, 32],
|
1012
|
+
[4, 18, 21, 30], [4, 18, 23, 24], [4, 18, 25, 36], [4, 18, 29, 32],
|
1013
|
+
[4, 18, 31, 34], [4, 19, 21, 27], [4, 19, 22, 24], [4, 19, 28, 32],
|
1014
|
+
[4, 19, 34, 36], [4, 20, 21, 36], [4, 20, 22, 31], [4, 20, 23, 35],
|
1015
|
+
[4, 20, 24, 37], [4, 20, 27, 34], [4, 21, 28, 31], [4, 21, 29, 37],
|
1016
|
+
[4, 22, 25, 30], [4, 22, 26, 33], [4, 22, 27, 32], [4, 22, 29, 35],
|
1017
|
+
[4, 23, 26, 30], [4, 24, 25, 35], [4, 24, 27, 28], [4, 24, 30, 34],
|
1018
|
+
[4, 24, 32, 36], [4, 25, 26, 31], [4, 25, 28, 34], [4, 27, 29, 33],
|
1019
|
+
[4, 28, 29, 30], [4, 30, 31, 37], [4, 32, 34, 35], [4, 33, 35, 37],
|
1020
|
+
[5, 6, 7, 19], [5, 6, 9, 36], [5, 6, 10, 32], [5, 6, 11, 22], [5, 6, 12, 17],
|
1021
|
+
[5, 6, 14, 15], [5, 6, 16, 23], [5, 6, 21, 27], [5, 6, 25, 30], [5, 6, 26, 28],
|
1022
|
+
[5, 6, 29, 37], [5, 6, 31, 33], [5, 6, 34, 35], [5, 7, 8, 15], [5, 7, 9, 14],
|
1023
|
+
[5, 7, 10, 33], [5, 7, 11, 20], [5, 7, 13, 28], [5, 7, 16, 27], [5, 7, 17, 18],
|
1024
|
+
[5, 7, 21, 30], [5, 7, 22, 23], [5, 7, 24, 35], [5, 7, 26, 34], [5, 7, 31, 36],
|
1025
|
+
[5, 7, 32, 37], [5, 8, 9, 23], [5, 8, 10, 28], [5, 8, 11, 37], [5, 8, 12, 24],
|
1026
|
+
[5, 8, 13, 25], [5, 8, 14, 22], [5, 8, 16, 30], [5, 8, 17, 29], [5, 8, 18, 32],
|
1027
|
+
[5, 8, 19, 36], [5, 8, 20, 27], [5, 8, 21, 33], [5, 9, 10, 12], [5, 9, 11, 33],
|
1028
|
+
[5, 9, 13, 30], [5, 9, 15, 35], [5, 9, 16, 25], [5, 9, 17, 37], [5, 9, 19, 34],
|
1029
|
+
[5, 9, 20, 32], [5, 9, 22, 27], [5, 9, 24, 28], [5, 10, 11, 29],
|
1030
|
+
[5, 10, 13, 31], [5, 10, 14, 34], [5, 10, 15, 25], [5, 10, 16, 18],
|
1031
|
+
[5, 10, 17, 19], [5, 10, 23, 24], [5, 10, 26, 30], [5, 10, 27, 35],
|
1032
|
+
[5, 10, 36, 37], [5, 11, 12, 35], [5, 11, 14, 17], [5, 11, 15, 23],
|
1033
|
+
[5, 11, 18, 36], [5, 11, 21, 34], [5, 11, 24, 30], [5, 11, 25, 32],
|
1034
|
+
[5, 11, 27, 28], [5, 12, 13, 16], [5, 12, 15, 26], [5, 12, 18, 25],
|
1035
|
+
[5, 12, 19, 27], [5, 12, 20, 36], [5, 12, 22, 34], [5, 12, 23, 29],
|
1036
|
+
[5, 12, 28, 31], [5, 12, 30, 37], [5, 12, 32, 33], [5, 13, 15, 32],
|
1037
|
+
[5, 13, 17, 23], [5, 13, 18, 35], [5, 13, 19, 20], [5, 13, 21, 26],
|
1038
|
+
[5, 13, 22, 24], [5, 13, 29, 36], [5, 13, 34, 37], [5, 14, 16, 35],
|
1039
|
+
[5, 14, 18, 28], [5, 14, 19, 23], [5, 14, 20, 30], [5, 14, 21, 31],
|
1040
|
+
[5, 14, 24, 33], [5, 14, 27, 29], [5, 14, 32, 36], [5, 15, 17, 20],
|
1041
|
+
[5, 15, 18, 31], [5, 15, 19, 21], [5, 15, 24, 34], [5, 15, 27, 36],
|
1042
|
+
[5, 15, 28, 37], [5, 16, 17, 21], [5, 16, 19, 29], [5, 16, 20, 31],
|
1043
|
+
[5, 16, 22, 36], [5, 16, 24, 26], [5, 16, 32, 34], [5, 17, 22, 25],
|
1044
|
+
[5, 17, 26, 33], [5, 17, 27, 30], [5, 17, 28, 32], [5, 17, 31, 34],
|
1045
|
+
[5, 18, 20, 34], [5, 18, 21, 29], [5, 18, 22, 26], [5, 18, 24, 37],
|
1046
|
+
[5, 18, 27, 33], [5, 19, 22, 31], [5, 19, 24, 25], [5, 19, 26, 37],
|
1047
|
+
[5, 19, 30, 33], [5, 19, 32, 35], [5, 20, 22, 28], [5, 20, 23, 25],
|
1048
|
+
[5, 20, 29, 33], [5, 20, 35, 37], [5, 21, 22, 37], [5, 21, 23, 32],
|
1049
|
+
[5, 21, 24, 36], [5, 21, 28, 35], [5, 22, 29, 32], [5, 23, 26, 31],
|
1050
|
+
[5, 23, 27, 34], [5, 23, 28, 33], [5, 23, 30, 36], [5, 24, 27, 31],
|
1051
|
+
[5, 25, 26, 36], [5, 25, 28, 29], [5, 25, 31, 35], [5, 25, 33, 37],
|
1052
|
+
[5, 26, 27, 32], [5, 26, 29, 35], [5, 28, 30, 34], [5, 29, 30, 31],
|
1053
|
+
[5, 33, 35, 36], [6, 7, 8, 20], [6, 7, 10, 37], [6, 7, 11, 33], [6, 7, 12, 23],
|
1054
|
+
[6, 7, 13, 18], [6, 7, 15, 16], [6, 7, 17, 24], [6, 7, 22, 28], [6, 7, 26, 31],
|
1055
|
+
[6, 7, 27, 29], [6, 7, 32, 34], [6, 7, 35, 36], [6, 8, 9, 16], [6, 8, 10, 15],
|
1056
|
+
[6, 8, 11, 34], [6, 8, 12, 21], [6, 8, 14, 29], [6, 8, 17, 28], [6, 8, 18, 19],
|
1057
|
+
[6, 8, 22, 31], [6, 8, 23, 24], [6, 8, 25, 36], [6, 8, 27, 35], [6, 8, 32, 37],
|
1058
|
+
[6, 9, 10, 24], [6, 9, 11, 29], [6, 9, 13, 25], [6, 9, 14, 26], [6, 9, 15, 23],
|
1059
|
+
[6, 9, 17, 31], [6, 9, 18, 30], [6, 9, 19, 33], [6, 9, 20, 37], [6, 9, 21, 28],
|
1060
|
+
[6, 9, 22, 34], [6, 10, 11, 13], [6, 10, 12, 34], [6, 10, 14, 31],
|
1061
|
+
[6, 10, 16, 36], [6, 10, 17, 26], [6, 10, 20, 35], [6, 10, 21, 33],
|
1062
|
+
[6, 10, 23, 28], [6, 10, 25, 29], [6, 11, 12, 30], [6, 11, 14, 32],
|
1063
|
+
[6, 11, 15, 35], [6, 11, 16, 26], [6, 11, 17, 19], [6, 11, 18, 20],
|
1064
|
+
[6, 11, 24, 25], [6, 11, 27, 31], [6, 11, 28, 36], [6, 12, 13, 36],
|
1065
|
+
[6, 12, 15, 18], [6, 12, 16, 24], [6, 12, 19, 37], [6, 12, 22, 35],
|
1066
|
+
[6, 12, 25, 31], [6, 12, 26, 33], [6, 12, 28, 29], [6, 13, 14, 17],
|
1067
|
+
[6, 13, 16, 27], [6, 13, 19, 26], [6, 13, 20, 28], [6, 13, 21, 37],
|
1068
|
+
[6, 13, 23, 35], [6, 13, 24, 30], [6, 13, 29, 32], [6, 13, 33, 34],
|
1069
|
+
[6, 14, 16, 33], [6, 14, 18, 24], [6, 14, 19, 36], [6, 14, 20, 21],
|
1070
|
+
[6, 14, 22, 27], [6, 14, 23, 25], [6, 14, 30, 37], [6, 15, 17, 36],
|
1071
|
+
[6, 15, 19, 29], [6, 15, 20, 24], [6, 15, 21, 31], [6, 15, 22, 32],
|
1072
|
+
[6, 15, 25, 34], [6, 15, 28, 30], [6, 15, 33, 37], [6, 16, 18, 21],
|
1073
|
+
[6, 16, 19, 32], [6, 16, 20, 22], [6, 16, 25, 35], [6, 16, 28, 37],
|
1074
|
+
[6, 17, 18, 22], [6, 17, 20, 30], [6, 17, 21, 32], [6, 17, 23, 37],
|
1075
|
+
[6, 17, 25, 27], [6, 17, 33, 35], [6, 18, 23, 26], [6, 18, 27, 34],
|
1076
|
+
[6, 18, 28, 31], [6, 18, 29, 33], [6, 18, 32, 35], [6, 19, 21, 35],
|
1077
|
+
[6, 19, 22, 30], [6, 19, 23, 27], [6, 19, 28, 34], [6, 20, 23, 32],
|
1078
|
+
[6, 20, 25, 26], [6, 20, 31, 34], [6, 20, 33, 36], [6, 21, 23, 29],
|
1079
|
+
[6, 21, 24, 26], [6, 21, 30, 34], [6, 22, 24, 33], [6, 22, 25, 37],
|
1080
|
+
[6, 22, 29, 36], [6, 23, 30, 33], [6, 24, 27, 32], [6, 24, 28, 35],
|
1081
|
+
[6, 24, 29, 34], [6, 24, 31, 37], [6, 25, 28, 32], [6, 26, 27, 37],
|
1082
|
+
[6, 26, 29, 30], [6, 26, 32, 36], [6, 27, 28, 33], [6, 27, 30, 36],
|
1083
|
+
[6, 29, 31, 35], [6, 30, 31, 32], [6, 34, 36, 37], [7, 8, 9, 21],
|
1084
|
+
[7, 8, 12, 34], [7, 8, 13, 24], [7, 8, 14, 19], [7, 8, 16, 17], [7, 8, 18, 25],
|
1085
|
+
[7, 8, 23, 29], [7, 8, 27, 32], [7, 8, 28, 30], [7, 8, 33, 35], [7, 8, 36, 37],
|
1086
|
+
[7, 9, 10, 17], [7, 9, 11, 16], [7, 9, 12, 35], [7, 9, 13, 22], [7, 9, 15, 30],
|
1087
|
+
[7, 9, 18, 29], [7, 9, 19, 20], [7, 9, 23, 32], [7, 9, 24, 25], [7, 9, 26, 37],
|
1088
|
+
[7, 9, 28, 36], [7, 10, 11, 25], [7, 10, 12, 30], [7, 10, 14, 26],
|
1089
|
+
[7, 10, 15, 27], [7, 10, 16, 24], [7, 10, 18, 32], [7, 10, 19, 31],
|
1090
|
+
[7, 10, 20, 34], [7, 10, 22, 29], [7, 10, 23, 35], [7, 11, 12, 14],
|
1091
|
+
[7, 11, 13, 35], [7, 11, 15, 32], [7, 11, 17, 37], [7, 11, 18, 27],
|
1092
|
+
[7, 11, 21, 36], [7, 11, 22, 34], [7, 11, 24, 29], [7, 11, 26, 30],
|
1093
|
+
[7, 12, 13, 31], [7, 12, 15, 33], [7, 12, 16, 36], [7, 12, 17, 27],
|
1094
|
+
[7, 12, 18, 20], [7, 12, 19, 21], [7, 12, 25, 26], [7, 12, 28, 32],
|
1095
|
+
[7, 12, 29, 37], [7, 13, 14, 37], [7, 13, 16, 19], [7, 13, 17, 25],
|
1096
|
+
[7, 13, 23, 36], [7, 13, 26, 32], [7, 13, 27, 34], [7, 13, 29, 30],
|
1097
|
+
[7, 14, 15, 18], [7, 14, 17, 28], [7, 14, 20, 27], [7, 14, 21, 29],
|
1098
|
+
[7, 14, 24, 36], [7, 14, 25, 31], [7, 14, 30, 33], [7, 14, 34, 35],
|
1099
|
+
[7, 15, 17, 34], [7, 15, 19, 25], [7, 15, 20, 37], [7, 15, 21, 22],
|
1100
|
+
[7, 15, 23, 28], [7, 15, 24, 26], [7, 16, 18, 37], [7, 16, 20, 30],
|
1101
|
+
[7, 16, 21, 25], [7, 16, 22, 32], [7, 16, 23, 33], [7, 16, 26, 35],
|
1102
|
+
[7, 16, 29, 31], [7, 17, 19, 22], [7, 17, 20, 33], [7, 17, 21, 23],
|
1103
|
+
[7, 17, 26, 36], [7, 18, 19, 23], [7, 18, 21, 31], [7, 18, 22, 33],
|
1104
|
+
[7, 18, 26, 28], [7, 18, 34, 36], [7, 19, 24, 27], [7, 19, 28, 35],
|
1105
|
+
[7, 19, 29, 32], [7, 19, 30, 34], [7, 19, 33, 36], [7, 20, 22, 36],
|
1106
|
+
[7, 20, 23, 31], [7, 20, 24, 28], [7, 20, 29, 35], [7, 21, 24, 33],
|
1107
|
+
[7, 21, 26, 27], [7, 21, 32, 35], [7, 21, 34, 37], [7, 22, 24, 30],
|
1108
|
+
[7, 22, 25, 27], [7, 22, 31, 35], [7, 23, 25, 34], [7, 23, 30, 37],
|
1109
|
+
[7, 24, 31, 34], [7, 25, 28, 33], [7, 25, 29, 36], [7, 25, 30, 35],
|
1110
|
+
[7, 26, 29, 33], [7, 27, 30, 31], [7, 27, 33, 37], [7, 28, 29, 34],
|
1111
|
+
[7, 28, 31, 37], [7, 30, 32, 36], [7, 31, 32, 33], [8, 9, 10, 22],
|
1112
|
+
[8, 9, 13, 35], [8, 9, 14, 25], [8, 9, 15, 20], [8, 9, 17, 18], [8, 9, 19, 26],
|
1113
|
+
[8, 9, 24, 30], [8, 9, 28, 33], [8, 9, 29, 31], [8, 9, 34, 36], [8, 10, 11, 18],
|
1114
|
+
[8, 10, 12, 17], [8, 10, 13, 36], [8, 10, 14, 23], [8, 10, 16, 31],
|
1115
|
+
[8, 10, 19, 30], [8, 10, 20, 21], [8, 10, 24, 33], [8, 10, 25, 26],
|
1116
|
+
[8, 10, 29, 37], [8, 11, 12, 26], [8, 11, 13, 31], [8, 11, 15, 27],
|
1117
|
+
[8, 11, 16, 28], [8, 11, 17, 25], [8, 11, 19, 33], [8, 11, 20, 32],
|
1118
|
+
[8, 11, 21, 35], [8, 11, 23, 30], [8, 11, 24, 36], [8, 12, 13, 15],
|
1119
|
+
[8, 12, 14, 36], [8, 12, 16, 33], [8, 12, 19, 28], [8, 12, 22, 37],
|
1120
|
+
[8, 12, 23, 35], [8, 12, 25, 30], [8, 12, 27, 31], [8, 13, 14, 32],
|
1121
|
+
[8, 13, 16, 34], [8, 13, 17, 37], [8, 13, 18, 28], [8, 13, 19, 21],
|
1122
|
+
[8, 13, 20, 22], [8, 13, 26, 27], [8, 13, 29, 33], [8, 14, 17, 20],
|
1123
|
+
[8, 14, 18, 26], [8, 14, 24, 37], [8, 14, 27, 33], [8, 14, 28, 35],
|
1124
|
+
[8, 14, 30, 31], [8, 15, 16, 19], [8, 15, 18, 29], [8, 15, 21, 28],
|
1125
|
+
[8, 15, 22, 30], [8, 15, 25, 37], [8, 15, 26, 32], [8, 15, 31, 34],
|
1126
|
+
[8, 15, 35, 36], [8, 16, 18, 35], [8, 16, 20, 26], [8, 16, 22, 23],
|
1127
|
+
[8, 16, 24, 29], [8, 16, 25, 27], [8, 17, 21, 31], [8, 17, 22, 26],
|
1128
|
+
[8, 17, 23, 33], [8, 17, 24, 34], [8, 17, 27, 36], [8, 17, 30, 32],
|
1129
|
+
[8, 18, 20, 23], [8, 18, 21, 34], [8, 18, 22, 24], [8, 18, 27, 37],
|
1130
|
+
[8, 19, 20, 24], [8, 19, 22, 32], [8, 19, 23, 34], [8, 19, 27, 29],
|
1131
|
+
[8, 19, 35, 37], [8, 20, 25, 28], [8, 20, 29, 36], [8, 20, 30, 33],
|
1132
|
+
[8, 20, 31, 35], [8, 20, 34, 37], [8, 21, 23, 37], [8, 21, 24, 32],
|
1133
|
+
[8, 21, 25, 29], [8, 21, 30, 36], [8, 22, 25, 34], [8, 22, 27, 28],
|
1134
|
+
[8, 22, 33, 36], [8, 23, 25, 31], [8, 23, 26, 28], [8, 23, 32, 36],
|
1135
|
+
[8, 24, 26, 35], [8, 25, 32, 35], [8, 26, 29, 34], [8, 26, 30, 37],
|
1136
|
+
[8, 26, 31, 36], [8, 27, 30, 34], [8, 28, 31, 32], [8, 29, 30, 35],
|
1137
|
+
[8, 31, 33, 37], [8, 32, 33, 34], [9, 10, 11, 23], [9, 10, 14, 36],
|
1138
|
+
[9, 10, 15, 26], [9, 10, 16, 21], [9, 10, 18, 19], [9, 10, 20, 27],
|
1139
|
+
[9, 10, 25, 31], [9, 10, 29, 34], [9, 10, 30, 32], [9, 10, 35, 37],
|
1140
|
+
[9, 11, 12, 19], [9, 11, 13, 18], [9, 11, 14, 37], [9, 11, 15, 24],
|
1141
|
+
[9, 11, 17, 32], [9, 11, 20, 31], [9, 11, 21, 22], [9, 11, 25, 34],
|
1142
|
+
[9, 11, 26, 27], [9, 12, 13, 27], [9, 12, 14, 32], [9, 12, 16, 28],
|
1143
|
+
[9, 12, 17, 29], [9, 12, 18, 26], [9, 12, 20, 34], [9, 12, 21, 33],
|
1144
|
+
[9, 12, 22, 36], [9, 12, 24, 31], [9, 12, 25, 37], [9, 13, 14, 16],
|
1145
|
+
[9, 13, 15, 37], [9, 13, 17, 34], [9, 13, 20, 29], [9, 13, 24, 36],
|
1146
|
+
[9, 13, 26, 31], [9, 13, 28, 32], [9, 14, 15, 33], [9, 14, 17, 35],
|
1147
|
+
[9, 14, 19, 29], [9, 14, 20, 22], [9, 14, 21, 23], [9, 14, 27, 28],
|
1148
|
+
[9, 14, 30, 34], [9, 15, 18, 21], [9, 15, 19, 27], [9, 15, 28, 34],
|
1149
|
+
[9, 15, 29, 36], [9, 15, 31, 32], [9, 16, 17, 20], [9, 16, 19, 30],
|
1150
|
+
[9, 16, 22, 29], [9, 16, 23, 31], [9, 16, 27, 33], [9, 16, 32, 35],
|
1151
|
+
[9, 16, 36, 37], [9, 17, 19, 36], [9, 17, 21, 27], [9, 17, 23, 24],
|
1152
|
+
[9, 17, 25, 30], [9, 17, 26, 28], [9, 18, 22, 32], [9, 18, 23, 27],
|
1153
|
+
[9, 18, 24, 34], [9, 18, 25, 35], [9, 18, 28, 37], [9, 18, 31, 33],
|
1154
|
+
[9, 19, 21, 24], [9, 19, 22, 35], [9, 19, 23, 25], [9, 20, 21, 25],
|
1155
|
+
[9, 20, 23, 33], [9, 20, 24, 35], [9, 20, 28, 30], [9, 21, 26, 29],
|
1156
|
+
[9, 21, 30, 37], [9, 21, 31, 34], [9, 21, 32, 36], [9, 22, 25, 33],
|
1157
|
+
[9, 22, 26, 30], [9, 22, 31, 37], [9, 23, 26, 35], [9, 23, 28, 29],
|
1158
|
+
[9, 23, 34, 37], [9, 24, 26, 32], [9, 24, 27, 29], [9, 24, 33, 37],
|
1159
|
+
[9, 25, 27, 36], [9, 26, 33, 36], [9, 27, 30, 35], [9, 27, 32, 37],
|
1160
|
+
[9, 28, 31, 35], [9, 29, 32, 33], [9, 30, 31, 36], [9, 33, 34, 35],
|
1161
|
+
[10, 11, 12, 24], [10, 11, 15, 37], [10, 11, 16, 27], [10, 11, 17, 22],
|
1162
|
+
[10, 11, 19, 20], [10, 11, 21, 28], [10, 11, 26, 32], [10, 11, 30, 35],
|
1163
|
+
[10, 11, 31, 33], [10, 12, 13, 20], [10, 12, 14, 19], [10, 12, 16, 25],
|
1164
|
+
[10, 12, 18, 33], [10, 12, 21, 32], [10, 12, 22, 23], [10, 12, 26, 35],
|
1165
|
+
[10, 12, 27, 28], [10, 13, 14, 28], [10, 13, 15, 33], [10, 13, 17, 29],
|
1166
|
+
[10, 13, 18, 30], [10, 13, 19, 27], [10, 13, 21, 35], [10, 13, 22, 34],
|
1167
|
+
[10, 13, 23, 37], [10, 13, 25, 32], [10, 14, 15, 17], [10, 14, 18, 35],
|
1168
|
+
[10, 14, 21, 30], [10, 14, 25, 37], [10, 14, 27, 32], [10, 14, 29, 33],
|
1169
|
+
[10, 15, 16, 34], [10, 15, 18, 36], [10, 15, 20, 30], [10, 15, 21, 23],
|
1170
|
+
[10, 15, 22, 24], [10, 15, 28, 29], [10, 15, 31, 35], [10, 16, 19, 22],
|
1171
|
+
[10, 16, 20, 28], [10, 16, 29, 35], [10, 16, 30, 37], [10, 16, 32, 33],
|
1172
|
+
[10, 17, 18, 21], [10, 17, 20, 31], [10, 17, 23, 30], [10, 17, 24, 32],
|
1173
|
+
[10, 17, 28, 34], [10, 17, 33, 36], [10, 18, 20, 37], [10, 18, 22, 28],
|
1174
|
+
[10, 18, 24, 25], [10, 18, 26, 31], [10, 18, 27, 29], [10, 19, 23, 33],
|
1175
|
+
[10, 19, 24, 28], [10, 19, 25, 35], [10, 19, 26, 36], [10, 19, 32, 34],
|
1176
|
+
[10, 20, 22, 25], [10, 20, 23, 36], [10, 20, 24, 26], [10, 21, 22, 26],
|
1177
|
+
[10, 21, 24, 34], [10, 21, 25, 36], [10, 21, 29, 31], [10, 22, 27, 30],
|
1178
|
+
[10, 22, 32, 35], [10, 22, 33, 37], [10, 23, 26, 34], [10, 23, 27, 31],
|
1179
|
+
[10, 24, 27, 36], [10, 24, 29, 30], [10, 25, 27, 33], [10, 25, 28, 30],
|
1180
|
+
[10, 26, 28, 37], [10, 27, 34, 37], [10, 28, 31, 36], [10, 29, 32, 36],
|
1181
|
+
[10, 30, 33, 34], [10, 31, 32, 37], [10, 34, 35, 36], [11, 12, 13, 25],
|
1182
|
+
[11, 12, 17, 28], [11, 12, 18, 23], [11, 12, 20, 21], [11, 12, 22, 29],
|
1183
|
+
[11, 12, 27, 33], [11, 12, 31, 36], [11, 12, 32, 34], [11, 13, 14, 21],
|
1184
|
+
[11, 13, 15, 20], [11, 13, 17, 26], [11, 13, 19, 34], [11, 13, 22, 33],
|
1185
|
+
[11, 13, 23, 24], [11, 13, 27, 36], [11, 13, 28, 29], [11, 14, 15, 29],
|
1186
|
+
[11, 14, 16, 34], [11, 14, 18, 30], [11, 14, 19, 31], [11, 14, 20, 28],
|
1187
|
+
[11, 14, 22, 36], [11, 14, 23, 35], [11, 14, 26, 33], [11, 15, 16, 18],
|
1188
|
+
[11, 15, 19, 36], [11, 15, 22, 31], [11, 15, 28, 33], [11, 15, 30, 34],
|
1189
|
+
[11, 16, 17, 35], [11, 16, 19, 37], [11, 16, 21, 31], [11, 16, 22, 24],
|
1190
|
+
[11, 16, 23, 25], [11, 16, 29, 30], [11, 16, 32, 36], [11, 17, 20, 23],
|
1191
|
+
[11, 17, 21, 29], [11, 17, 30, 36], [11, 17, 33, 34], [11, 18, 19, 22],
|
1192
|
+
[11, 18, 21, 32], [11, 18, 24, 31], [11, 18, 25, 33], [11, 18, 29, 35],
|
1193
|
+
[11, 18, 34, 37], [11, 19, 23, 29], [11, 19, 25, 26], [11, 19, 27, 32],
|
1194
|
+
[11, 19, 28, 30], [11, 20, 24, 34], [11, 20, 25, 29], [11, 20, 26, 36],
|
1195
|
+
[11, 20, 27, 37], [11, 20, 33, 35], [11, 21, 23, 26], [11, 21, 24, 37],
|
1196
|
+
[11, 21, 25, 27], [11, 22, 23, 27], [11, 22, 25, 35], [11, 22, 26, 37],
|
1197
|
+
[11, 22, 30, 32], [11, 23, 28, 31], [11, 23, 33, 36], [11, 24, 27, 35],
|
1198
|
+
[11, 24, 28, 32], [11, 25, 28, 37], [11, 25, 30, 31], [11, 26, 28, 34],
|
1199
|
+
[11, 26, 29, 31], [11, 29, 32, 37], [11, 30, 33, 37], [11, 31, 34, 35],
|
1200
|
+
[11, 35, 36, 37], [12, 13, 14, 26], [12, 13, 18, 29], [12, 13, 19, 24],
|
1201
|
+
[12, 13, 21, 22], [12, 13, 23, 30], [12, 13, 28, 34], [12, 13, 32, 37],
|
1202
|
+
[12, 13, 33, 35], [12, 14, 15, 22], [12, 14, 16, 21], [12, 14, 18, 27],
|
1203
|
+
[12, 14, 20, 35], [12, 14, 23, 34], [12, 14, 24, 25], [12, 14, 28, 37],
|
1204
|
+
[12, 14, 29, 30], [12, 15, 16, 30], [12, 15, 17, 35], [12, 15, 19, 31],
|
1205
|
+
[12, 15, 20, 32], [12, 15, 21, 29], [12, 15, 23, 37], [12, 15, 24, 36],
|
1206
|
+
[12, 15, 27, 34], [12, 16, 17, 19], [12, 16, 20, 37], [12, 16, 23, 32],
|
1207
|
+
[12, 16, 29, 34], [12, 16, 31, 35], [12, 17, 18, 36], [12, 17, 22, 32],
|
1208
|
+
[12, 17, 23, 25], [12, 17, 24, 26], [12, 17, 30, 31], [12, 17, 33, 37],
|
1209
|
+
[12, 18, 21, 24], [12, 18, 22, 30], [12, 18, 31, 37], [12, 18, 34, 35],
|
1210
|
+
[12, 19, 20, 23], [12, 19, 22, 33], [12, 19, 25, 32], [12, 19, 26, 34],
|
1211
|
+
[12, 19, 30, 36], [12, 20, 24, 30], [12, 20, 26, 27], [12, 20, 28, 33],
|
1212
|
+
[12, 20, 29, 31], [12, 21, 25, 35], [12, 21, 26, 30], [12, 21, 27, 37],
|
1213
|
+
[12, 21, 34, 36], [12, 22, 24, 27], [12, 22, 26, 28], [12, 23, 24, 28],
|
1214
|
+
[12, 23, 26, 36], [12, 23, 31, 33], [12, 24, 29, 32], [12, 24, 34, 37],
|
1215
|
+
[12, 25, 28, 36], [12, 25, 29, 33], [12, 26, 31, 32], [12, 27, 29, 35],
|
1216
|
+
[12, 27, 30, 32], [12, 32, 35, 36], [13, 14, 15, 27], [13, 14, 19, 30],
|
1217
|
+
[13, 14, 20, 25], [13, 14, 22, 23], [13, 14, 24, 31], [13, 14, 29, 35],
|
1218
|
+
[13, 14, 34, 36], [13, 15, 16, 23], [13, 15, 17, 22], [13, 15, 19, 28],
|
1219
|
+
[13, 15, 21, 36], [13, 15, 24, 35], [13, 15, 25, 26], [13, 15, 30, 31],
|
1220
|
+
[13, 16, 17, 31], [13, 16, 18, 36], [13, 16, 20, 32], [13, 16, 21, 33],
|
1221
|
+
[13, 16, 22, 30], [13, 16, 25, 37], [13, 16, 28, 35], [13, 17, 18, 20],
|
1222
|
+
[13, 17, 24, 33], [13, 17, 30, 35], [13, 17, 32, 36], [13, 18, 19, 37],
|
1223
|
+
[13, 18, 23, 33], [13, 18, 24, 26], [13, 18, 25, 27], [13, 18, 31, 32],
|
1224
|
+
[13, 19, 22, 25], [13, 19, 23, 31], [13, 19, 35, 36], [13, 20, 21, 24],
|
1225
|
+
[13, 20, 23, 34], [13, 20, 26, 33], [13, 20, 27, 35], [13, 20, 31, 37],
|
1226
|
+
[13, 21, 25, 31], [13, 21, 27, 28], [13, 21, 29, 34], [13, 21, 30, 32],
|
1227
|
+
[13, 22, 26, 36], [13, 22, 27, 31], [13, 22, 35, 37], [13, 23, 25, 28],
|
1228
|
+
[13, 23, 27, 29], [13, 24, 25, 29], [13, 24, 27, 37], [13, 24, 32, 34],
|
1229
|
+
[13, 25, 30, 33], [13, 26, 29, 37], [13, 26, 30, 34], [13, 27, 32, 33],
|
1230
|
+
[13, 28, 30, 36], [13, 28, 31, 33], [13, 33, 36, 37], [14, 15, 16, 28],
|
1231
|
+
[14, 15, 20, 31], [14, 15, 21, 26], [14, 15, 23, 24], [14, 15, 25, 32],
|
1232
|
+
[14, 15, 30, 36], [14, 15, 35, 37], [14, 16, 17, 24], [14, 16, 18, 23],
|
1233
|
+
[14, 16, 20, 29], [14, 16, 22, 37], [14, 16, 25, 36], [14, 16, 26, 27],
|
1234
|
+
[14, 16, 31, 32], [14, 17, 18, 32], [14, 17, 19, 37], [14, 17, 21, 33],
|
1235
|
+
[14, 17, 22, 34], [14, 17, 23, 31], [14, 17, 29, 36], [14, 18, 19, 21],
|
1236
|
+
[14, 18, 25, 34], [14, 18, 31, 36], [14, 18, 33, 37], [14, 19, 24, 34],
|
1237
|
+
[14, 19, 25, 27], [14, 19, 26, 28], [14, 19, 32, 33], [14, 20, 23, 26],
|
1238
|
+
[14, 20, 24, 32], [14, 20, 36, 37], [14, 21, 22, 25], [14, 21, 24, 35],
|
1239
|
+
[14, 21, 27, 34], [14, 21, 28, 36], [14, 22, 26, 32], [14, 22, 28, 29],
|
1240
|
+
[14, 22, 30, 35], [14, 22, 31, 33], [14, 23, 27, 37], [14, 23, 28, 32],
|
1241
|
+
[14, 24, 26, 29], [14, 24, 28, 30], [14, 25, 26, 30], [14, 25, 33, 35],
|
1242
|
+
[14, 26, 31, 34], [14, 27, 31, 35], [14, 28, 33, 34], [14, 29, 31, 37],
|
1243
|
+
[14, 29, 32, 34], [15, 16, 17, 29], [15, 16, 21, 32], [15, 16, 22, 27],
|
1244
|
+
[15, 16, 24, 25], [15, 16, 26, 33], [15, 16, 31, 37], [15, 17, 18, 25],
|
1245
|
+
[15, 17, 19, 24], [15, 17, 21, 30], [15, 17, 26, 37], [15, 17, 27, 28],
|
1246
|
+
[15, 17, 32, 33], [15, 18, 19, 33], [15, 18, 22, 34], [15, 18, 23, 35],
|
1247
|
+
[15, 18, 24, 32], [15, 18, 30, 37], [15, 19, 20, 22], [15, 19, 26, 35],
|
1248
|
+
[15, 19, 32, 37], [15, 20, 25, 35], [15, 20, 26, 28], [15, 20, 27, 29],
|
1249
|
+
[15, 20, 33, 34], [15, 21, 24, 27], [15, 21, 25, 33], [15, 22, 23, 26],
|
1250
|
+
[15, 22, 25, 36], [15, 22, 28, 35], [15, 22, 29, 37], [15, 23, 27, 33],
|
1251
|
+
[15, 23, 29, 30], [15, 23, 31, 36], [15, 23, 32, 34], [15, 24, 29, 33],
|
1252
|
+
[15, 25, 27, 30], [15, 25, 29, 31], [15, 26, 27, 31], [15, 26, 34, 36],
|
1253
|
+
[15, 27, 32, 35], [15, 28, 32, 36], [15, 29, 34, 35], [15, 30, 33, 35],
|
1254
|
+
[16, 17, 18, 30], [16, 17, 22, 33], [16, 17, 23, 28], [16, 17, 25, 26],
|
1255
|
+
[16, 17, 27, 34], [16, 18, 19, 26], [16, 18, 20, 25], [16, 18, 22, 31],
|
1256
|
+
[16, 18, 28, 29], [16, 18, 33, 34], [16, 19, 20, 34], [16, 19, 23, 35],
|
1257
|
+
[16, 19, 24, 36], [16, 19, 25, 33], [16, 20, 21, 23], [16, 20, 27, 36],
|
1258
|
+
[16, 21, 26, 36], [16, 21, 27, 29], [16, 21, 28, 30], [16, 21, 34, 35],
|
1259
|
+
[16, 22, 25, 28], [16, 22, 26, 34], [16, 23, 24, 27], [16, 23, 26, 37],
|
1260
|
+
[16, 23, 29, 36], [16, 24, 28, 34], [16, 24, 30, 31], [16, 24, 32, 37],
|
1261
|
+
[16, 24, 33, 35], [16, 25, 30, 34], [16, 26, 28, 31], [16, 26, 30, 32],
|
1262
|
+
[16, 27, 28, 32], [16, 27, 35, 37], [16, 28, 33, 36], [16, 29, 33, 37],
|
1263
|
+
[16, 30, 35, 36], [16, 31, 34, 36], [17, 18, 19, 31], [17, 18, 23, 34],
|
1264
|
+
[17, 18, 24, 29], [17, 18, 26, 27], [17, 18, 28, 35], [17, 19, 20, 27],
|
1265
|
+
[17, 19, 21, 26], [17, 19, 23, 32], [17, 19, 29, 30], [17, 19, 34, 35],
|
1266
|
+
[17, 20, 21, 35], [17, 20, 24, 36], [17, 20, 25, 37], [17, 20, 26, 34],
|
1267
|
+
[17, 21, 22, 24], [17, 21, 28, 37], [17, 22, 27, 37], [17, 22, 28, 30],
|
1268
|
+
[17, 22, 29, 31], [17, 22, 35, 36], [17, 23, 26, 29], [17, 23, 27, 35],
|
1269
|
+
[17, 24, 25, 28], [17, 24, 30, 37], [17, 25, 29, 35], [17, 25, 31, 32],
|
1270
|
+
[17, 25, 34, 36], [17, 26, 31, 35], [17, 27, 29, 32], [17, 27, 31, 33],
|
1271
|
+
[17, 28, 29, 33], [17, 29, 34, 37], [17, 31, 36, 37], [17, 32, 35, 37],
|
1272
|
+
[18, 19, 20, 32], [18, 19, 24, 35], [18, 19, 25, 30], [18, 19, 27, 28],
|
1273
|
+
[18, 19, 29, 36], [18, 20, 21, 28], [18, 20, 22, 27], [18, 20, 24, 33],
|
1274
|
+
[18, 20, 30, 31], [18, 20, 35, 36], [18, 21, 22, 36], [18, 21, 25, 37],
|
1275
|
+
[18, 21, 27, 35], [18, 22, 23, 25], [18, 23, 29, 31], [18, 23, 30, 32],
|
1276
|
+
[18, 23, 36, 37], [18, 24, 27, 30], [18, 24, 28, 36], [18, 25, 26, 29],
|
1277
|
+
[18, 26, 30, 36], [18, 26, 32, 33], [18, 26, 35, 37], [18, 27, 32, 36],
|
1278
|
+
[18, 28, 30, 33], [18, 28, 32, 34], [18, 29, 30, 34], [19, 20, 21, 33],
|
1279
|
+
[19, 20, 25, 36], [19, 20, 26, 31], [19, 20, 28, 29], [19, 20, 30, 37],
|
1280
|
+
[19, 21, 22, 29], [19, 21, 23, 28], [19, 21, 25, 34], [19, 21, 31, 32],
|
1281
|
+
[19, 21, 36, 37], [19, 22, 23, 37], [19, 22, 28, 36], [19, 23, 24, 26],
|
1282
|
+
[19, 24, 30, 32], [19, 24, 31, 33], [19, 25, 28, 31], [19, 25, 29, 37],
|
1283
|
+
[19, 26, 27, 30], [19, 27, 31, 37], [19, 27, 33, 34], [19, 28, 33, 37],
|
1284
|
+
[19, 29, 31, 34], [19, 29, 33, 35], [19, 30, 31, 35], [20, 21, 22, 34],
|
1285
|
+
[20, 21, 26, 37], [20, 21, 27, 32], [20, 21, 29, 30], [20, 22, 23, 30],
|
1286
|
+
[20, 22, 24, 29], [20, 22, 26, 35], [20, 22, 32, 33], [20, 23, 29, 37],
|
1287
|
+
[20, 24, 25, 27], [20, 25, 31, 33], [20, 25, 32, 34], [20, 26, 29, 32],
|
1288
|
+
[20, 27, 28, 31], [20, 28, 34, 35], [20, 30, 32, 35], [20, 30, 34, 36],
|
1289
|
+
[20, 31, 32, 36], [21, 22, 23, 35], [21, 22, 28, 33], [21, 22, 30, 31],
|
1290
|
+
[21, 23, 24, 31], [21, 23, 25, 30], [21, 23, 27, 36], [21, 23, 33, 34],
|
1291
|
+
[21, 25, 26, 28], [21, 26, 32, 34], [21, 26, 33, 35], [21, 27, 30, 33],
|
1292
|
+
[21, 28, 29, 32], [21, 29, 35, 36], [21, 31, 33, 36], [21, 31, 35, 37],
|
1293
|
+
[21, 32, 33, 37], [22, 23, 24, 36], [22, 23, 29, 34], [22, 23, 31, 32],
|
1294
|
+
[22, 24, 25, 32], [22, 24, 26, 31], [22, 24, 28, 37], [22, 24, 34, 35],
|
1295
|
+
[22, 26, 27, 29], [22, 27, 33, 35], [22, 27, 34, 36], [22, 28, 31, 34],
|
1296
|
+
[22, 29, 30, 33], [22, 30, 36, 37], [22, 32, 34, 37], [23, 24, 25, 37],
|
1297
|
+
[23, 24, 30, 35], [23, 24, 32, 33], [23, 25, 26, 33], [23, 25, 27, 32],
|
1298
|
+
[23, 25, 35, 36], [23, 27, 28, 30], [23, 28, 34, 36], [23, 28, 35, 37],
|
1299
|
+
[23, 29, 32, 35], [23, 30, 31, 34], [24, 25, 31, 36], [24, 25, 33, 34],
|
1300
|
+
[24, 26, 27, 34], [24, 26, 28, 33], [24, 26, 36, 37], [24, 28, 29, 31],
|
1301
|
+
[24, 29, 35, 37], [24, 30, 33, 36], [24, 31, 32, 35], [25, 26, 32, 37],
|
1302
|
+
[25, 26, 34, 35], [25, 27, 28, 35], [25, 27, 29, 34], [25, 29, 30, 32],
|
1303
|
+
[25, 31, 34, 37], [25, 32, 33, 36], [26, 27, 35, 36], [26, 28, 29, 36],
|
1304
|
+
[26, 28, 30, 35], [26, 30, 31, 33], [26, 33, 34, 37], [27, 28, 36, 37],
|
1305
|
+
[27, 29, 30, 37], [27, 29, 31, 36], [27, 31, 32, 34], [28, 30, 32, 37],
|
1306
|
+
[28, 32, 33, 35], [29, 33, 34, 36], [30, 34, 35, 37]]
|